Készíts egy értelmezőt a Forth egy nagyon egyszerű részhalmazához.
A Forth egy veremalapú programozási nyelv. Készíts egy nagyon egyszerű értelmezőt a Forth egy kis részhalmazához.
Az értelmeződnek a következő szavakat kell támogatnia:
+, -, *, / (egész számokkal végzett műveletek)DUP, DROP, SWAP, OVER (veremműveletek)Az értelmeződnek emellett támogatnia kell új szavak definiálását a szokásos szintaxissal: : word-name definition ;.
Hogy a dolog egyszerű maradjon, az egyetlen adattípus, amelyet támogatnod kell, az előjeles egész szám, méghozzá legalább 16 bites.
A szintaxishoz a következő szabályokat használd: egy szám egy vagy több (ASCII-)számjegyből álló sorozat, egy szó pedig egy vagy több olyan betűből, számjegyből, szimbólumból vagy írásjelből álló sorozat, amely nem szám. (A Forth valószínűleg kicsit más szabályokat használ, de ez így elég jó közelítés.)
A szavak nem tesznek különbséget kis- és nagybetű között.
A feladat megoldásához létre kell hoznod a ForthState adattípust, és meg kell valósítanod a következő függvényeket:
emptyState egy üres ForthState-et ad vissza.evalText kiértékel egy bemeneti Text értéket, és visszaadja az új állapotot.toList a jelenlegi vermet listaként adja vissza, úgy, hogy a verem tetején lévő elem a legjobbszélső (utolsó) elem legyen.A kiinduló kódban már megtalálod egy dummy adatdeklarációt és a típusszignatúrákat, de a függvényeket neked kell definiálnod, és neked kell létrehoznod egy értelmes adattípust, newtype-ot vagy típusszinonimát is.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Haskell nyelvet 107 feladat segítségével, valódi emberi mentorálással, mindez ingyen.