A Scheme programozási nyelv

Példaprogramok

A következő függvény segít karbantartani egy bankszámla egyenlegét. Kírja a kiindulási egyenleget, azután egy ciklusba lép, ami bekér egy számot a felhasználótól, kivonja az aktuális egyenlegből. A betétek negatív számmal adhatók meg. Ha nullat kap inputként, kiírja az egyenleget, és terminál.

(define checkbook (lambda () ; Ez az egyenlegkarbantartó program a Scheme-beli I/O demonstrálására ; készült. A Scheme tisztán funkcionális részét használja. ; Lokális definícók (letrec ; Ezeket fogjuk promptként használni ((IB "írja be a kiinduló egyenleget: ") (AT "írja be a vérehajtandó tranzakciót: ") (FB "A záróegyenleg: ") ; Ez a függvény megjeleníti a promptot és visszaad egy ; beolvasott értéket (prompt-read (lambda (Prompt) (display Prompt) (read))) ; Ez a függvény kiszámítja az új egyenleget ; a kiinduló egyenlegből (Init) és a t tranzakciób1l ; Ha a t 0, terminál, különben rekurzívan meghívja ; önmagát. (newbal (lambda (Init t) (if (= t 0) (list FB Init) (transaction (+ Init t))))) ; Ez a függvény kiírja a promptot és beolvassa a ; következő tranzakciót, és ennek értékét ; átadja a newbal-nak. (transaction (lambda (Init) (newbal Init (prompt-read AT))))) ; Ez a checkbook törzse. Bekéri a kiinduló egyenleget. (transaction (prompt-read IB)))))