LISP-এ স্কেলর ডাটা টাইপস হল সিঙ্গেল ভ্যালু রিপ্রেজেন্ট করার ডাটা টাইপ, যেমন নাম্বার, ক্যারেকটার, এবং স্ট্রিং। এগুলো LISP প্রোগ্রামে ডাটা রেপ্রেজেন্ট করার জন্য খুবই গুরুত্বপূর্ণ। এই ডাটা টাইপগুলো সাধারণত মৌলিক মান (single values) রিপ্রেজেন্ট করে এবং অন্যান্য ডাটা স্ট্রাকচারের সাথে ব্যবহার করা হয়।
চলুন প্রতিটি স্কেলর ডাটা টাইপ সম্পর্কে বিস্তারিত জানি:
১. নাম্বার (Numbers)
LISP-এ নাম্বার বিভিন্ন ধরনের হয়, যেমন ইন্টিজার (পূর্ণসংখ্যা), ফ্লোটিং-পয়েন্ট নাম্বার (ভগ্নাংশ), এবং রেশনাল নাম্বার (ভাগফল)।
ইন্টিজার নাম্বার (Integer Numbers)
LISP ইন্টিজার (পূর্ণসংখ্যা) অর্বিটারি প্রিসিশন (যত বড় চান তত বড়) সাপোর্ট করে।
উদাহরণ:
(setq a 42) ; ইন্টিজার
(setq b -100) ; নেগেটিভ ইন্টিজারফ্লোটিং-পয়েন্ট নাম্বার (Floating-Point Numbers)
LISP ফ্লোটিং-পয়েন্ট নাম্বার সাপোর্ট করে, যা দশমিক সংখ্যার জন্য ব্যবহৃত হয়।
উদাহরণ:
(setq x 3.14) ; ফ্লোটিং-পয়েন্ট নাম্বার
(setq y -2.718) ; নেগেটিভ ফ্লোটিং-পয়েন্ট নাম্বাররেশনাল নাম্বার (Rational Numbers)
LISP রেশনাল নাম্বারকে ভগ্নাংশ হিসেবে রেপ্রেজেন্ট করতে পারে।
উদাহরণ:
(setq r1 3/4) ; রেশনাল নাম্বার
(setq r2 -7/2) ; নেগেটিভ রেশনাল নাম্বারগণনা অপারেশন (Arithmetic Operations)
LISP-এ নাম্বারগুলোতে গাণিতিক অপারেশন করতে বিভিন্ন ফাংশন রয়েছে।
উদাহরণ:
(+ 5 3) ; 8 - যোগফল
(- 10 4) ; 6 - বিয়োগফল
(* 2 3) ; 6 - গুণফল
(/ 6 2) ; 3 - ভাগফল২. ক্যারেকটার (Characters)
LISP-এ ক্যারেকটার একটি সিঙ্গেল চিহ্ন বা সিম্বল রেপ্রেজেন্ট করে। ক্যারেকটারগুলো #\ দিয়ে লেখা হয়।
ক্যারেকটার উদাহরণ:
(setq char1 #\a) ; ক্যারেকটার 'a'
(setq char2 #\B) ; ক্যারেকটার 'B'
(setq char3 #\9) ; ক্যারেকটার '9'
(setq char4 #\Space) ; ক্যারেকটার স্পেসক্যারেকটার এবং স্ট্রিংয়ের মধ্যে পার্থক্য হল যে স্ট্রিং হলো একাধিক ক্যারেকটার, তবে ক্যারেকটার একটি একক সিম্বল।
ক্যারেকটার তুলনা:
ক্যারেকটারগুলোর মধ্যে তুলনা করতে = অপারেটর ব্যবহার করা যায়।
উদাহরণ:
(= #\a #\b) ; ফলস (NIL) কারণ 'a' সমান নয় 'b' এর৩. স্ট্রিং (Strings)
স্ট্রিং হলো ক্যারেকটারদের সিকোয়েন্স (ধারা), যা ডাবল কোটস " " দিয়ে লেখা হয়।
স্ট্রিং উদাহরণ:
(setq str1 "Hello") ; স্ট্রিং "Hello"
(setq str2 "LISP World") ; স্ট্রিং "LISP World"
(setq str3 "12345") ; স্ট্রিং "12345"স্ট্রিংয়ের সাথে বিভিন্ন অপারেশন করা যায়, যেমন যোগফল (concatenation), দৈর্ঘ্য (length), এবং তুলনা (comparison)।
স্ট্রিং অপারেশনস:
স্ট্রিংয়ের দৈর্ঘ্য:
স্ট্রিংয়ের দৈর্ঘ্য বের করতেlengthফাংশন ব্যবহার করা হয়।উদাহরণ:
(length "Hello") ; ফলস্বরূপ: 5স্ট্রিং যোগফল (Concatenation):
স্ট্রিং যোগফলের জন্যconcatenateফাংশন ব্যবহার করা হয়।উদাহরণ:
(concatenate 'string "Hello" " " "World") ; ফলস্বরূপ: "Hello World"স্ট্রিং তুলনা (Comparison):
স্ট্রিং তুলনা করতেstring=ফাংশন ব্যবহার করা হয়।উদাহরণ:
(string= "Hello" "Hello") ; ফলস্বরূপ: T (সত্য), কারণ স্ট্রিং দুটি সমান (string= "Hello" "World") ; ফলস্বরূপ: NIL, কারণ স্ট্রিং দুটি সমান নয়
স্ট্রিং পরিবর্তন (Modification):
সাবস্ট্রিং বের করা:
subseqফাংশন দিয়ে স্ট্রিংয়ের অংশ বের করা যায়।উদাহরণ:
(subseq "Hello, World!" 7 12) ; ফলস্বরূপ: "World"
সারসংক্ষেপ
| ডাটা টাইপ | বর্ণনা | উদাহরণ |
|---|---|---|
| নাম্বার | পূর্ণসংখ্যা, দশমিক সংখ্যা, ভগ্নাংশ ইত্যাদি। | 42, 3.14, -2.718, 3/4 |
| ক্যারেকটার | একক চিহ্ন বা সিম্বল। | #\a, #\B, #\Space |
| স্ট্রিং | একাধিক ক্যারেকটার দিয়ে গঠিত টেক্সট। | "Hello", "LISP World", "12345" |
LISP-এর স্কেলর ডাটা টাইপস, যেমন নাম্বার, ক্যারেকটার, এবং স্ট্রিং, এই ভাষার শক্তিশালী ডাটা রেপ্রেজেন্টেশন এবং প্রক্রিয়াকরণের উপাদান হিসেবে কাজ করে। এগুলো কোড লেখার সময় ব্যবহৃত হয় গণনা, টেক্সট প্রক্রিয়াকরণ, এবং অন্যান্য সাধারণ কার্যাবলীর জন্য।