Forth

Forth

صعب

التعليمات

أنشئ مُقيِّمًا لمجموعة فرعية بسيطة جدًا من Forth.

Forth لغة برمجة تعتمد على المكدّس. أنشئ مُقيِّمًا أساسيًا جدًا لمجموعة صغيرة من Forth.

على مُقيِّمك أن يدعم الكلمات التالية:

  • +، -، *، / (العمليات الحسابية على الأعداد الصحيحة)
  • DUP، DROP، SWAP، OVER (التعامل مع المكدّس)

كما على مُقيِّمك أن يدعم تعريف كلمات جديدة باستخدام الصيغة المعتادة: : word-name definition ;.

ولتبسيط الأمور، نوع البيانات الوحيد الذي تحتاج إلى دعمه هو الأعداد الصحيحة المُوقّعة بحجم 16 بت على الأقل.

عليك استخدام القواعد التالية للصيغة: العدد هو متتالية من رقم (ASCII) واحد أو أكثر، والكلمة متتالية من حرف أو رقم أو رمز أو علامة ترقيم واحدة أو أكثر، ولا تكون عددًا. (ربما تستخدم Forth قواعد مختلفة قليلًا، لكن هذا قريب بما يكفي.)

الكلمات غير حساسة لحالة الأحرف.

تلميحات

لإكمال هذا التمرين، عليك إنشاء نوع البيانات ForthState وتنفيذ الدوال التالية:

  • تُرجع emptyState حالة ForthState فارغة.
  • تُقيّم evalText نصًا داخلًا من النوع Text، وتُرجع الحالة الجديدة.
  • تُرجع toList المكدس الحالي على هيئة مصفوفة، ويكون العنصر الموجود في أعلى المكدس هو العنصر الأيمن (الأخير).

ستجد إعلانًا لبيانات وهمية وتوقيعات الأنواع موجودة بالفعل، لكن الأمر متروك لك لتعريف الدوال وإنشاء نوع بيانات أو newtype أو مرادف نوع ذي معنى.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Haskell Exercism

مستعد لبدء Forth؟

سجّل في Exercism لتتعلّم وتتقن Haskell عبر 107 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.