A Scheme programozási nyelv

Nyelvi elemek

A Scheme programok felépítése

A Scheme program valójában függvénydefiniciók halmaza. Nincs kötött végrehajtási sorrend és fő függvény. A függvénydefiníciók egymásba ágyazhatók. A Scheme program egy kifejezés kiértékelésével hajtható végre. A függvények és kifejezések a következő módon adhatók meg:

(függvény_neve argumentumok)

A szintaxis annyiban eltér a megszokott matematikai jelöléstől, hogy a függvény neve is a zárójelek közé kerül, és az argumentumokat vesszők helyett szóközök választják el. Például a 3 + 4 * 5 kifejezést Scheme-ben így kell írni:

(+ 3 (* 4 5))

Szintaxis

A Scheme nyelv szintaktikailag közel áll a lambda kalkulushoz.

Scheme szintaxis E -> kifejezés I -> azonosító (változó) K -> konstans E ::= K | I | (E_0 E*) | (lambda (I*) E2) | (define I E')

Scheme-ben a lambda absztrakciónak egy vagy több paramétere lehet. A szinatxis annyiban eltér a megszokott matematikai jelöléstől, hogy a függvény neve is a zarójelek közé kerül, és az argumentumokat vesszők helyett szóközök választják el.

Például:

(+ 3 5) (fac 6) (append '(a b c) '(1 2 3 4))

Az első kifejezés a 3 és az 5 összege, a második a fac függvény alkalmazása a 6 értékre, a harmadik az append függvény alkalmazása két listára. Megjegyzés: az aposztrófok a listák (szigorú) kiértékelését akadályozzák meg. A függvényeket prefix formában kell használni.

Az azonosítók az angol ABC kis- és nagybetűiből, számjegyekből, illetve a következő karakterekből állhatnak: ? ! . + - * / < = > : $ % ^ & _ ~. Az azonosítók általában nem kezdődhetnek olyan karakterrel, ami numerikus érték elején is állhat. (Ilyenek a számjegyek, a plusz, illetve a mínusz jel és a tizedespont.) Ez alól kivétel a +, a - és a ... . Az azonosítókat whitespace-ek, idézőjelek, és a kommentek kezdetét jelző ; karakter határolhatják.