let এক্সপ্রেশনটি একটি লোকাল স্কোপ তৈরি করতে ব্যবহৃত হয়, আর এটি কয়েকটি পরিস্থিতিতে কাজে লাগে:
let এক্সপ্রেশনের ভেতরে আপনি বেশিরভাগ কাজই করতে পারেন, যার মধ্যে ডিস্ট্রাকচারিংও পড়ে (এটি নিয়ে আরও বিস্তারিত থাকবে পরের অনুশীলনীগুলোতে), তবে নতুন কোনো Custom Type বা Type Alias ডিফাইন করা সম্ভব নয়।
let
cube x = x * x * x
in
cube a + cube b + cube c
beginWithPattern : Size -> Padding -> Pattern -> GameOfLife
beginWithPattern minimumSize padding pattern =
let
size = calculateSize minimumSize padding pattern
center = Size.center size
centeredPattern = Pattern.centerAt center pattern
dimensions = { width = size, height = size }
deadCells = Matrix.create dimensions Dead
in
GameOfLife (bringPatternToLife deadCells centeredPattern)
আপনার জন্মদিনে আপনি একটি নতুন রান্নার বই উপহার পেয়েছেন, আর আপনি জানতে চান, তার মধ্যে থাকা লাসাগনার রেসিপিটি আপনার এখনকার প্রিয় রান্নার বইয়ের চেয়ে ভালো কি না। এই অনুশীলনীতে আপনি কিছু কোড লিখবেন, যা নতুন রান্নার বই থেকে লাসাগনা রান্না করতে সাহায্য করবে।
আপনার রুমমেট এখনও অফিসে ব্যস্ত, আর তিনি জানতে চান লাসাগনাটি কখন তৈরি হবে, যাতে তিনি সময়মতো ফিরে আসতে পারেন।
লাসাগনাটি কখন তৈরি হবে তা বের করার জন্য একটি ফাংশন তৈরি করুন। কোডটি সহজ ও প্রকাশভঙ্গিময় করতে আপনার একটি let এক্সপ্রেশন ব্যবহার করা উচিত।
remainingTimeInMinutes ফাংশনটি ডিফাইন করুন, যা দুটি প্যারামিটার নেয় এবং তার বডি হিসেবে একটি let এক্সপ্রেশন থাকে। প্রথম প্যারামিটারটি হলো লাসাগনায় স্তরের সংখ্যা, আর দ্বিতীয় প্যারামিটারটি হলো রান্না শুরু করার পর কত মিনিট পেরিয়েছে তার সংখ্যা।
expectedMinutesInOven ডিফাইন করুন (let এক্সপ্রেশনের let অংশে), যা দেখবে লাসাগনাটি কত মিনিট ধরে ওভেনে থাকা উচিত। রান্নার বই অনুযায়ী, ওভেনে থাকার প্রত্যাশিত সময় মিনিটে ৪০:
expectedMinutesInOven
--> 40
preparationTimeInMinutes ডিফাইন করুন (let এক্সপ্রেশনের let অংশে), যা লাসাগনায় স্তরের সংখ্যাকে প্যারামিটার হিসেবে নেয় এবং লাসাগনা প্রস্তুত করতে কত মিনিট লাগে তা রিটার্ন করে, ধরে নিয়ে যে প্রতিটি স্তর প্রস্তুত করতে ২ মিনিট লাগে।
preparationTimeInMinutes 3
--> 6
লাসাগনা তৈরি হতে আর কত মিনিট বাকি আছে তা রিটার্ন করুন (let এক্সপ্রেশনের in অংশে), যা হলো preparationTimeInMinutes এবং expectedMinutesInOven-এর যোগফল থেকে রান্না শুরু করার পর পেরিয়ে যাওয়া মিনিটের সংখ্যা বিয়োগ করে পাওয়া মান।
remainingTimeInMinutes 3 10
--> 6 + 40 - 10 = 36
Exercism-এ সাইন আপ করুন, Elm ট্র্যাকের 28টি কনসেপ্ট110টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।