একটি কনস্ট্যান্ট মান name = expression দিয়ে ডিফাইন করা হয়,
যেখানে Elm-এ ডেফিনিশন ছাড়া অন্য সবকিছুই এক্সপ্রেশন।
five = 5
six = 3 + 3
ফাংশন name parameters... = expression দিয়ে ডিফাইন করা হয়,
যেখানে প্যারামিটারগুলো শুধু স্পেস দিয়ে আলাদা করা হয়।
add number1 number2 = number1 + number2
একটি ফাংশন কল করাও একটি এক্সপ্রেশন, এবং এটি করা হয় ফাংশনের নাম উল্লেখ করে ও ফাংশনের প্রতিটি প্যারামিটারের জন্য আর্গুমেন্ট পাস করে, স্পেস দিয়ে আলাদা করা, ঠিক ফাংশন ডিফাইন করার মতোই।
five = add 2 3
একটি এক্সপ্রেশন কোন ক্রমে ইভ্যালুয়েট হবে, তা নির্দিষ্ট করতে বন্ধনী ব্যবহার করা যায়।
six = add 2 (1 * 4)
twelve = add 2 1 * 4
Elm কোডের সীমা নির্দিষ্ট করতে কার্লি ব্র্যাকেট, বন্ধনী বা সেমিকোলনের মতো সিনট্যাক্টিক মার্কার ব্যবহার করে না। এর বদলে এটি হোয়াইটস্পেস ও ইন্ডেন্টেশন ব্যবহার করে।
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
number1 + number2
https://elmprogramming.com/indentation.html
Elm-এ প্রতিটি ফাইল একটি মডিউল, এবং অন্য সব কোডের আগে অবশ্যই একটি module স্টেটমেন্ট থাকতে হবে।
মডিউলের নাম তার ফাইলের নামের সাথে মিলতে হবে, তাই Calculator মডিউলটি অবশ্যই Calculator.elm ফাইলে থাকতে হবে।
একটি মডিউলের ভিতরে যা-ই ডিফাইন করা হোক, তা কেবল ওই মডিউলেই সীমাবদ্ধ থাকে
এবং exposing-এ উল্লেখ না থাকলে এই মডিউলের বাইরে থেকে অ্যাক্সেস করা যায় না।
-- Define the Calculator module, and expose the `add` function
module Calculator exposing (add)
six = 3 + 3
add number1 number2 = number1 + number2
-- Define the Calculator module, and expose everything within: `six` and `add`
module Calculator exposing (..)
six = 3 + 3
add number1 number2 = number1 + number2
https://elm-lang.org/docs/syntax#modules
কমেন্ট হলো Elm ফাইলের ভিতরের এমন কিছু টেক্সট, যা কোড হিসেবে ইন্টারপ্রেট করা হয় না।
এটি মূলত আপনার নিজের এবং অন্য প্রোগ্রামারদের পড়ার জন্য।
ডাবল ড্যাশ ভিত্তিক সিঙ্গেল লাইন কমেন্টের জন্য একটি হালকা সিনট্যাক্স আছে।
{- এবং -} এই ওপেনিং ও ক্লোজিং ডেলিমিটারের জোড়া দিয়ে মাল্টিলাইন কমেন্টও করা সম্ভব।
-- a single line comment
-- another single line comment
{- a multiline comment
spawning multiple lines
-}
একটি স্টাইল গাইড আছে, এবং কোড স্বয়ংক্রিয়ভাবে ফরম্যাট করতে elm-format ব্যবহার করা যায়।
এই অনুশীলনীতে আপনি আপনার প্রিয় রান্নার বই থেকে একটি দুর্দান্ত লাসাগনা রান্না করতে সাহায্য করার জন্য কিছু কোড লিখবেন।
আপনার তিনটি কাজ আছে, যেগুলোর সবই লাসাগনা রান্নায় ব্যয় হওয়া সময়ের সাথে সম্পর্কিত।
লাসাগনাটি কত মিনিট ওভেনে থাকা উচিত তা হিসাব করার জন্য expectedMinutesInOven ডিফাইন করুন। রান্নার বই অনুযায়ী, ওভেনে প্রত্যাশিত সময় মিনিটে ৪০:
expectedMinutesInOven
--> 40
preparationTimeInMinutes ডিফাইন করুন, যা লাসাগনার স্তরের সংখ্যা প্যারামিটার হিসেবে নেয় এবং লাসাগনা প্রস্তুত করতে কত মিনিট লাগে তা রিটার্ন করে, ধরে নিয়ে যে প্রতিটি স্তর প্রস্তুত করতে ২ মিনিট লাগে।
preparationTimeInMinutes 3
--> 6
elapsedTimeInMinutes ফাংশনটি ডিফাইন করুন, যা দুটি প্যারামিটার নেয়: প্রথম প্যারামিটারটি হলো লাসাগনার স্তরের সংখ্যা, আর দ্বিতীয় প্যারামিটারটি হলো লাসাগনাটি কত মিনিট ওভেনে আছে তা। ফাংশনটি রিটার্ন করবে লাসাগনা রান্না করতে আপনি কত মিনিট কাজ করেছেন, যা হলো প্রস্তুতির সময় মিনিটে এবং এই মুহূর্তে লাসাগনাটি ওভেনে যত মিনিট কাটিয়েছে তার যোগফল।
elapsedTimeInMinutes 3 20
--> 26
Exercism-এ সাইন আপ করুন, Elm ট্র্যাকের 28টি কনসেপ্ট110টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।