ট্র্যাক
/
Elm
Elm
/
অনুশীলনী
/
মারিওর দুর্দান্ত লাসাগনা
মারিওর দুর্দান্ত লাসাগনা

মারিওর দুর্দান্ত লাসাগনা

লার্নিং অনুশীলনী

ভূমিকা

Let

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)

নির্দেশনা

আপনার জন্মদিনে আপনি একটি নতুন রান্নার বই উপহার পেয়েছেন, আর আপনি জানতে চান, তার মধ্যে থাকা লাসাগনার রেসিপিটি আপনার এখনকার প্রিয় রান্নার বইয়ের চেয়ে ভালো কি না। এই অনুশীলনীতে আপনি কিছু কোড লিখবেন, যা নতুন রান্নার বই থেকে লাসাগনা রান্না করতে সাহায্য করবে।

আপনার রুমমেট এখনও অফিসে ব্যস্ত, আর তিনি জানতে চান লাসাগনাটি কখন তৈরি হবে, যাতে তিনি সময়মতো ফিরে আসতে পারেন।

1. লাসাগনাটি কখন তৈরি হবে তা বের করুন

লাসাগনাটি কখন তৈরি হবে তা বের করার জন্য একটি ফাংশন তৈরি করুন। কোডটি সহজ ও প্রকাশভঙ্গিময় করতে আপনার একটি 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
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Elm Exercism

মারিওর দুর্দান্ত লাসাগনা শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Elm ট্র্যাকের 28টি কনসেপ্ট110টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।