LISP (LISt Processing) একটি ফাংশনাল প্রোগ্রামিং ভাষা হওয়ায়, এখানে ভেরিয়েবল ডিক্লারেশন এবং ইনিশিয়ালাইজেশন (অর্থাৎ ভেরিয়েবল সৃষ্টি ও তার প্রাথমিক মান নির্ধারণ) কিছুটা আলাদা হতে পারে। LISP-এ ভেরিয়েবলগুলো সাধারণত ডিক্লেয়ার করা হয় এবং তারপরে তাদের ইনিশিয়ালাইজ করা হয়, তবে LISP একটি ডায়নামিক্যালি টাইপড ভাষা হওয়ায় ভেরিয়েবলগুলোর টাইপ আগে থেকে নির্ধারণ করতে হয় না।
১. ভেরিয়েবল ডিক্লারেশন (Variable Declaration)
LISP-এ ভেরিয়েবল ডিক্লেয়ার করার জন্য setq, defvar, অথবা defparameter ফাংশন ব্যবহার করা হয়। যদিও LISP এ স্ট্যাটিক ডিক্লারেশন (যেমন C, Java বা অন্যান্য ভাষায় থাকে) নেই, তবুও ভেরিয়েবল তৈরি করতে হয়।
setq ফাংশন
setq হল LISP-এ ভেরিয়েবল সেট করার জন্য সবচেয়ে সাধারণ পদ্ধতি। এখানে প্রথমে ভেরিয়েবলের নাম এবং তারপর তার মান দেওয়া হয়।
উদাহরণ:
(setq x 10) ; x ভেরিয়েবলকে 10 দিয়ে ইনিশিয়ালাইজ করা হয়েছে
(setq y 20) ; y ভেরিয়েবলকে 20 দিয়ে ইনিশিয়ালাইজ করা হয়েছেএখানে setq দ্বারা ভেরিয়েবল x এবং y ডিক্লেয়ার এবং ইনিশিয়ালাইজ করা হয়েছে।
defvar এবং defparameter ফাংশন
defvarসাধারণত একবার ভেরিয়েবল ডিক্লেয়ার করার জন্য ব্যবহৃত হয়, যাতে এটি যদি পূর্বে ডিফাইন না করা থাকে তবে এটি ইনিশিয়ালাইজ হয়।defparameterএর ব্যবহারও একই, তবে এটি বারবার নতুন মান ইনিশিয়ালাইজ করার জন্য ব্যবহৃত হয়।
উদাহরণ:
(defvar z 30) ; z ভেরিয়েবলকে 30 দিয়ে ডিফাইন করা হয়েছে
(defparameter w 40) ; w ভেরিয়েবলকে 40 দিয়ে ডিফাইন করা হয়েছে২. ভেরিয়েবল ইনিশিয়ালাইজেশন (Variable Initialization)
ভেরিয়েবল ইনিশিয়ালাইজেশন মানে হচ্ছে কোনো ভেরিয়েবলের জন্য প্রথমবারের মতো মান নির্ধারণ করা। LISP-এ setq, defvar, এবং defparameter-এর মাধ্যমে ভেরিয়েবল ইনিশিয়ালাইজ করা হয়।
setq দিয়ে ইনিশিয়ালাইজেশন
যেমন আগে দেখানো হয়েছে, setq দিয়ে ভেরিয়েবল ডিক্লেয়ার এবং ইনিশিয়ালাইজ করা যায়। এটি মান সরাসরি নির্ধারণ করে।
উদাহরণ:
(setq a 100) ; a ভেরিয়েবলকে 100 দিয়ে ইনিশিয়ালাইজ
(setq b 50) ; b ভেরিয়েবলকে 50 দিয়ে ইনিশিয়ালাইজdefvar দিয়ে ইনিশিয়ালাইজেশন
defvar দিয়ে যদি ভেরিয়েবল ডিক্লেয়ার করা হয় এবং তার মান যদি ইতিমধ্যে ডিফাইন করা না থাকে, তাহলে এটি ইনিশিয়ালাইজ করা হবে।
উদাহরণ:
(defvar c 200) ; c ভেরিয়েবলকে 200 দিয়ে ইনিশিয়ালাইজdefparameter দিয়ে ইনিশিয়ালাইজেশন
defparameter ফাংশনটি যখন ব্যবহার করা হয়, তখন এটি ভেরিয়েবলটি পুনরায় মান নির্ধারণ করতে সহায়তা করে।
উদাহরণ:
(defparameter d 300) ; d ভেরিয়েবলকে 300 দিয়ে ইনিশিয়ালাইজ৩. ভেরিয়েবল মান পরিবর্তন (Variable Value Modification)
LISP-এ ভেরিয়েবলের মান পরিবর্তন করার জন্য setq ব্যবহার করা হয়। ভেরিয়েবলকে নতুন মান দিয়ে সেট করা হয়।
উদাহরণ:
(setq x 50) ; x ভেরিয়েবলের মান 50 হয়ে যাবে
(setq x (+ x 10)) ; x ভেরিয়েবলের মান 60 হবে (50 + 10)৪. স্ট্রিং এবং লিস্ট ইনিশিয়ালাইজেশন
এছাড়া LISP-এ স্ট্রিং এবং লিস্ট ডাটা টাইপগুলোর ইনিশিয়ালাইজেশনও করা যায়।
স্ট্রিং ইনিশিয়ালাইজেশন:
(setq mystring "Hello, LISP!") ; স্ট্রিং ইনিশিয়ালাইজলিস্ট ইনিশিয়ালাইজেশন:
(setq mylist '(1 2 3 4 5)) ; লিস্ট ইনিশিয়ালাইজসারসংক্ষেপ
| ফাংশন | ব্যাখ্যা | উদাহরণ |
|---|---|---|
setq | ভেরিয়েবল ডিক্লেয়ার ও ইনিশিয়ালাইজ করতে ব্যবহৃত। | (setq x 10) |
defvar | প্রথমবার ভেরিয়েবল ডিফাইন করতে ব্যবহৃত (পুনরায় মান নির্ধারণ নয়)। | (defvar y 20) |
defparameter | ভেরিয়েবল ডিফাইন ও ইনিশিয়ালাইজ করতে ব্যবহৃত (পুনরায় মান নির্ধারণ)। | (defparameter z 30) |
LISP-এ ভেরিয়েবল ডিক্লেয়ার এবং ইনিশিয়ালাইজ করার জন্য setq, defvar, এবং defparameter প্রধান ফাংশন হিসেবে ব্যবহৃত হয়। এগুলো দিয়ে আপনি ভেরিয়েবল সৃষ্টি এবং তার প্রথম মান নির্ধারণ করতে পারবেন।
Read more