কিছু ভাষাগুলি এটি করার অনুমতি দেয় এবং অন্যরা তা না করে? সেমিকোলনটি শেষের দিকে যুক্ত করার মতো অভিন্ন ব্যবস্থা রাখবেন না কেন?
রবার্ট সুইফট সম্পর্কে একটি ভাল উত্তর দিয়েছে, আমি সাধারণভাবে পার্সিং এবং কেন সেমিকোলন ব্যবহার করব বা না করব সে সম্পর্কে আরও কিছু যুক্ত করার চেষ্টা করব।
আপনি যখন প্রোগ্রামটি সংকলন করেন, তখন আপনার উত্স ফাইলটি এক্সিকিউটেবল কোডে রূপান্তরিত হওয়ার আগে বেশ কয়েকটি পদক্ষেপ রয়েছে, প্রথমটি পড়ার এবং পার্সিংয়ের একটি । পার্সিংয়ের সময় আপনার কোড অক্ষরের ক্রমিক থেকে ভাষার ব্যাকরণ অনুযায়ী কাঠামোগত উপস্থাপনায় রূপান্তরিত হয় । এর জন্য এটি প্রয়োজনীয় যে আপনার কোডগুলি রচনাগুলি (ভেরিয়েবল, ধ্রুবক, ঘোষণা ইত্যাদি) কোনওভাবে চিহ্নিত এবং পৃথক করা উচিত। আপনি যখন এই মত ঘোষণা করেন:
int someNumber = 0;
এটি কেবলমাত্র অক্ষরের একটি অনুক্রম যা কোনওভাবে " someNumber
ধরণের একটি 'জিনিস তৈরি করুন int
এবং তাকে নির্ধারিত করুন ' ধারণাটিতে পরিণত 0
করা দরকার ।
এর জন্য বিবৃতিটি ঠিক কোথায় শুরু এবং শেষ হয় তা সনাক্তকরণের প্রয়োজন। আপনার যদি এটি থাকে তবে ভাবুন:
int someNumber = 0;
int otherNumber = 1;
আপনার জানা দরকার যে এগুলি দুটি পৃথক ঘোষণা। ;
C-র মত ভাষাতে তাই পার্সার অক্ষর পর্যন্ত এটি এক খুঁজে বের সার্চ, এবং বুঝতে কি কেবলমাত্র একটি বিবৃতি হিসাবে পাঠ করা হয় প্রচেষ্টা, যে জন্য ব্যবহার করা হয়। রবার্ট যেমন বলেছিলেন, এটি একই লাইনে একাধিক বক্তব্য রাখার অনুমতি দেয়, যেমন:
int someNumber = 0; int otherNumber = 1;
যা তাদের দুটি লাইনে লেখার মতো একই প্রভাব ফেলে।
পাইথনের মতো অন্যান্য ভাষায়ও আপনি প্রতিটি বিবৃতি আলাদা লাইনে রেখে দেবেন বলে আশা করা হচ্ছে।
x = 3
if x < 10:
print 'x smaller than 10'
else:
print 'x is bigger than 10 or equal'
সুতরাং একটি যুক্ত করার দরকার নেই ;
, কারণ ভাষা নিজেই আপনাকে একই লাইনে বিবৃতি যুক্ত করতে বাধা দেয়!
তবুও অন্যান্য ভাষাগুলির মতো, এলআইএসপি বা স্কিমের , বিবৃতি গোষ্ঠীকরণের একটি খুব আলাদা পদ্ধতি রয়েছে (ঠিক আছে, তারা আসলে বিবৃতি নয়, তবে আপাতত এটিকে উপেক্ষা করুন)। সুতরাং আপনার কাছে সমস্ত কিছুর জন্য প্রথম বন্ধনী রয়েছে:
(define (do-stuff x)
(begin
(display (format "value: ~a" x))
x))
আবার, আপনি প্রয়োজন নেই ;
শুধু কারণ আপনি একই প্রতীক (ব্যবহার )
, (
জিনিসের জন্য) যে অন্যান্য ভাষা {
, }
, :
, ইত্যাদি যিনি শুধুমাত্র পাতার মর্মর সিনট্যাক্স জানেন তোমরা জিজ্ঞেস করতে পারেন: কেন আপনি প্রয়োজন ;
আপনার বিবৃতি শেষে ?
কেবলমাত্র একটি অপরিচিত উদাহরণ যুক্ত করতে: ওক্যামেলের বিবৃতি শেষে কেবল অর্ধবৃত্ত থাকে না ... এটির দুটি রয়েছে!
let rec fact x =
if x <= 1 then 1 else x * fact (x - 1);;
কেন? আমি জানি না। :)
বিভিন্ন ভাষা বিভিন্ন উদ্দেশ্য এবং বিভিন্ন দর্শনের সাথে ডিজাইন করা হয়েছে। যদি সমস্ত ভাষায় একই বাক্য গঠন এবং কনভেনশনগুলি ভাগ করা হয় তবে তারা সম্ভবত আপনাকে একই জিনিস একই পদ্ধতিতে করার অনুমতি দেবে।