লিস্ট থেকে ভেক্টর: এফিশিয়েন্ট উপায়
কখনো কখনো ক্লোজারে আপনাকে কোন একটি লিস্টকে ভেক্টরে রূপ দিতে হতে পারে। আমরা এখন সবচেয়ে দ্রুত উপয়াটি বের করতে চেষ্টা করবো।
প্রথমেই সবচেয়ে জেনেরিক উপায় অর্থাৎ into ব্যবহার করে দেখি:
boot.user> (time (into [] (range 0 101)))
"Elapsed time: 1.235923 msecs"
আমরা দেখতে পাচ্ছি into ব্যবহার করে আমাদের 1.235923 মিলিসেকেন্ড সময় লেগেছে।
কিন্তু ভেক্টরে রূপান্তরিত করার জন্য vec নামে একটি ফাংশনই আছে। এবার vec ব্যবহার করে দেখি:
boot.user> (time (vec (range 0 101)))
"Elapsed time: 1.824692 msecs"
দেখা যাচ্ছে, vec ব্যবহার করে সময় আরো বেশি লাগে। এবার আমরা mapv ব্যবহার করছি:
boot.user> (time (mapv identity (range 0 101)))
"Elapsed time: 1.186615 msecs"
ছোটখাট কাজে নিশ্চিন্তে vec বা into ব্যবহার করা যায়। তবে, বড়সড় লিস্টের ক্ষেত্রে বা কম্পিটিশনে প্রবলেম সলভ করতে, যেখান সময় একটা গুরুত্বপূর্ণ বিষয়, mapv ব্যবহারই শ্রেয়।