বিখ্যাত এসআইসিপি পড়ার সময়, আমি খুঁজে পেলাম যে লেখকরা অধ্যায় 3 এর স্কিমে অ্যাসাইনমেন্ট স্টেটমেন্টটি প্রবর্তন করতে অনিচ্ছুক বলে মনে হচ্ছে আমি পাঠ্য এবং তাদের ধরণটি বুঝতে পেরেছি কেন তারা এগুলি অনুভব করে।
যেহেতু স্কিমটি প্রথম ক্রিয়াকলাপের প্রোগ্রামিং ভাষা হিসাবে আমি কখনই কিছু জানতে পারি, তাই আমি অবাক হচ্ছি যে কিছু কার্যকরী প্রোগ্রামিং ভাষা রয়েছে (অবশ্যই স্কিম নয়) অ্যাসাইনমেন্ট ছাড়াই করতে পারে।
বইটি যে উদাহরণ দেয় তার উদাহরণটি ব্যবহার করুন bank account
। যদি কোন অ্যাসাইনমেন্ট স্টেটমেন্ট না থাকে তবে এটি কীভাবে করা যায়? balance
ভেরিয়েবলটি কীভাবে পরিবর্তন করবেন? আমি এটি জিজ্ঞাসা করছি কারণ আমি জানি যে এখানে কিছু তথাকথিত বিশুদ্ধ কার্যকরী ভাষা রয়েছে এবং ট্যুরিং সম্পূর্ণ তত্ত্ব অনুসারে এটিও করা যেতে পারে।
আমি সি, জাভা, পাইথন শিখেছি এবং আমার লেখা প্রতিটি প্রোগ্রামে অ্যাসাইনমেন্ট ব্যবহার করে। সুতরাং এটি সত্যিই চোখ খোলার অভিজ্ঞতা। আমি সত্যিই প্রত্যাশা করি যে কেউ কীভাবে সংক্ষেপে ব্যাখ্যা করতে পারেন যে কীভাবে সেই কার্যকরী প্রোগ্রামিং ভাষাগুলিতে অ্যাসাইনমেন্টগুলি এড়ানো হয় এবং এই ভাষাগুলিতে এর কী গভীর প্রভাব (যদি থাকে)।
উপরে বর্ণিত উদাহরণটি এখানে:
(define (make-withdraw balance)
(lambda (amount)
(if (>= balance amount)
(begin (set! balance (- balance amount))
balance)
"Insufficient funds")))
এটি balance
দ্বারা পরিবর্তন করা হয়েছে set!
। আমার কাছে এটি অনেকটা ক্লাস মেম্বার পরিবর্তন করার জন্য ক্লাস পদ্ধতির মতো দেখাচ্ছে balance
।
যেমনটি আমি বলেছি, আমি ক্রিয়ামূলক প্রোগ্রামিং ভাষার সাথে পরিচিত নই, তাই যদি আমি সেগুলি সম্পর্কে কিছু ভুল বলে থাকি তবে নির্দ্বিধায় বিন্দু মনে করি।
set!
বা অন্যান্য ফাংশনগুলির সাথে লিখুন যা শেষ হয়!
। এটির সাথে আপনি যদি স্বাচ্ছন্দ্য বোধ করেন তবে খাঁটি এফপিতে স্থানান্তর সহজ হওয়া উচিত।