Forth-এর একটি খুব সাধারণ উপসেটের জন্য একটি ইভ্যালুয়েটর তৈরি করুন।
Forth হলো একটি স্ট্যাক-ভিত্তিক প্রোগ্রামিং ভাষা। Forth-এর একটি ছোট উপসেটের জন্য একটি খুব সাধারণ ইভ্যালুয়েটর তৈরি করুন।
আপনার ইভ্যালুয়েটরকে নিচের শব্দগুলো সাপোর্ট করতে হবে:
+, -, *, / (পূর্ণসংখ্যার গণনা)DUP, DROP, SWAP, OVER (স্ট্যাক ম্যানিপুলেশন)আপনার ইভ্যালুয়েটরকে প্রচলিত সিনট্যাক্স ব্যবহার করে নতুন শব্দ ডিফাইন করার সুবিধাও দিতে হবে: : word-name definition ;.
সহজ রাখতে আপনার শুধু একটি ডেটা টাইপ সাপোর্ট করলেই হয়: অন্তত ১৬ বিট আকারের সাইনড ইন্টিজার।
সিনট্যাক্সের জন্য আপনার নিচের নিয়মগুলো ব্যবহার করা উচিত: একটি সংখ্যা হলো এক বা একাধিক (ASCII) ডিজিটের একটি ক্রম, আর একটি শব্দ হলো এক বা একাধিক অক্ষর, ডিজিট, প্রতীক বা যতিচিহ্নের এমন একটি ক্রম যা সংখ্যা নয়। (Forth সম্ভবত একটু ভিন্ন নিয়ম ব্যবহার করে, কিন্তু এটা যথেষ্ট কাছাকাছি।)
শব্দগুলো কেস-ইনসেনসিটিভ।
এই অনুশীলনীটি সম্পূর্ণ করতে, আপনাকে ForthState ডেটা টাইপটি তৈরি করতে হবে এবং নিচের ফাংশনগুলো বাস্তবায়ন করতে হবে:
emptyState একটি খালি ForthState রিটার্ন করে।evalText একটি ইনপুট Text মূল্যায়ন করে এবং নতুন স্টেট রিটার্ন করে।toList বর্তমান স্ট্যাকটিকে একটি অ্যারে হিসেবে রিটার্ন করে, যেখানে স্ট্যাকের
উপরের এলিমেন্টটিই ডানদিকের (শেষ) এলিমেন্ট।একটি ডামি ডেটা ডিক্লারেশন আর টাইপ সিগনেচার আগেই দেওয়া আছে, কিন্তু ফাংশনগুলো ডিফাইন করা এবং একটি অর্থবহ ডেটা টাইপ, নিউটাইপ বা টাইপ সিনোনিম তৈরি করা আপনারই কাজ।
Exercism-এ সাইন আপ করুন, Haskell ট্র্যাকের 107টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।