LISP-এ কন্ডিশনাল স্টেটমেন্টস ব্যবহার করে বিভিন্ন শর্তের ভিত্তিতে কোডের বিভিন্ন অংশ কার্যকর করা যায়। LISP-এ তিনটি প্রধান কন্ডিশনাল স্টেটমেন্ট ব্যবহার করা হয়:
ifcondcase
এগুলো প্রতিটিই ভিন্নভাবে কাজ করে, এবং এগুলোর মধ্যে কোনটি ব্যবহার করবেন তা নির্ভর করে আপনার কোডের চাহিদার উপর।
১. if স্টেটমেন্ট
if হল LISP-এ সবচেয়ে সাধারণ কন্ডিশনাল স্টেটমেন্ট। এটি একটি শর্ত পরীক্ষা করে এবং যদি শর্ত সত্য হয় তবে একটি এক্সপ্রেশন কার্যকর হয়, অন্যথায় অন্য একটি এক্সপ্রেশন কার্যকর হয়।
সিনট্যাক্স:
(if condition
then-expression
else-expression)condition: এখানে শর্ত বা এক্সপ্রেশন দেওয়া হয় যা পরীক্ষা করা হবে।then-expression: যদি শর্ত সত্য হয়, তাহলে এই এক্সপ্রেশনটি কার্যকর হবে।else-expression: যদি শর্ত মিথ্যা হয়, তাহলে এই এক্সপ্রেশনটি কার্যকর হবে (এটি ঐচ্ছিক)।
উদাহরণ:
(setq x 10)
(if (> x 5)
(print "x is greater than 5") ; সত্য হলে
(print "x is less than or equal to 5")) ; মিথ্যা হলেএখানে, x এর মান 10 হওয়ায় শর্ত সত্য, তাই আউটপুট হবে: x is greater than 5।
২. cond স্টেটমেন্ট
cond স্টেটমেন্ট LISP-এ একাধিক শর্ত পরীক্ষা করার জন্য ব্যবহার করা হয়। এটি if এর মত, তবে একাধিক শর্ত এবং তাদের সাথে সম্পর্কিত এক্সপ্রেশনগুলো পরীক্ষা করা যায়।
সিনট্যাক্স:
(cond
(condition1 expression1)
(condition2 expression2)
(condition3 expression3)
(t default-expression)) ; t মানে "true", যদি কোন শর্ত মিথ্যা হয়condition: শর্ত যা পরীক্ষা করা হবে।expression: শর্তটি যদি সত্য হয়, তবে এই এক্সপ্রেশনটি কার্যকর হবে।t: "true" এর জন্য ব্যবহৃত হয়, যা ডিফল্ট বা ফ্যালব্যাক এক্সপ্রেশন হিসেবে ব্যবহৃত হয় যদি কোন শর্ত মিথ্যা হয়।
উদাহরণ:
(setq x 10)
(cond
((> x 20) (print "x is greater than 20"))
((> x 5) (print "x is greater than 5 but less than or equal to 20"))
((< x 0) (print "x is less than 0"))
(t (print "x is non-positive")))এখানে, x এর মান 10 হওয়ায় দ্বিতীয় শর্তটি সত্য হবে এবং আউটপুট হবে: x is greater than 5 but less than or equal to 20।
৩. case স্টেটমেন্ট
case স্টেটমেন্টটি মূলত সুনির্দিষ্ট মানের সাথে তুলনা করে। এটি একটি নির্দিষ্ট ভ্যালু অথবা আর্গুমেন্টের উপর ভিত্তি করে একাধিক সম্ভাব্য মান চেক করতে ব্যবহৃত হয়, এবং যদি কোন মান মেলে, তখন সংশ্লিষ্ট এক্সপ্রেশন কার্যকর হয়।
সিনট্যাক্স:
(case expression
(value1 expression1)
(value2 expression2)
(value3 expression3)
(otherwise default-expression))expression: এটি পরীক্ষা করা হবে।value1,value2,value3: তুলনা করার জন্য ভ্যালুগুলি।default-expression: এটি তখন ব্যবহৃত হবে যখন কোন মান মেলে না।
উদাহরণ:
(setq x 2)
(case x
(1 (print "x is 1"))
(2 (print "x is 2"))
(3 (print "x is 3"))
(otherwise (print "x is something else")))এখানে, x এর মান 2 হওয়ায় আউটপুট হবে: x is 2।
সারসংক্ষেপ
| স্টেটমেন্ট | ব্যাখ্যা | উদাহরণ |
|---|---|---|
if | একটি শর্ত পরীক্ষা করে এবং যদি সত্য হয়, তখন প্রথম এক্সপ্রেশন, আর যদি মিথ্যা হয়, তখন দ্বিতীয় এক্সপ্রেশন। | (if (> x 5) (print "x is greater than 5") (print "x is less than or equal to 5")) |
cond | একাধিক শর্ত পরীক্ষা করে এবং প্রথম সত্য শর্তের জন্য সংশ্লিষ্ট এক্সপ্রেশন কার্যকর হয়। | (cond ((> x 20) (print "x is greater than 20")) ((> x 5) (print "x is greater than 5 but less than or equal to 20")) (t (print "x is non-positive"))) |
case | একটি নির্দিষ্ট ভ্যালুর জন্য একাধিক সম্ভাব্য মান পরীক্ষা করা হয় এবং সংশ্লিষ্ট এক্সপ্রেশন কার্যকর হয়। | (case x (1 (print "x is 1")) (2 (print "x is 2")) (otherwise (print "x is something else"))) |
LISP-এ কন্ডিশনাল স্টেটমেন্টগুলির মধ্যে প্রতিটি তার নিজস্ব কাজের জন্য উপযোগী, এবং এগুলো কোডে বিভিন্ন শর্তের ভিত্তিতে বিভিন্ন অংশ কার্যকর করতে সহায়তা করে।
Read more