next up previous contents index
Next: Når feil oppstår Up: ``Les--evaluer--skriv'' løkke Previous: Evaluering

Enkle regneuttrykk

Vi kan sette i gang å skrive ulike uttrykk. Først noen kalkulasjoner:

(+ 1 3)
=> 4
(+ 4 3 9 8)
=>24
(* 2 3 4 5)
=> 120
(+ (* 7 8) 3 (/ 9 3))
=> 62

  Denne formen å notere prosedyrer i, med funksjonen først og argumentene på rekke etter, blir kalt for Cambridge   Polish Notation (CPN), eller ``prefix notasjon'' . Den er helt grunnleggende i Lisp. En av fordelene med denne notasjonsformen er at en funksjon kan gis et vilkårlig antall argumenter. Vi ser og at argumentene til en funksjon hver for seg kan bestå av sammensatte uttrykk. Argumentene er atskilt av et mellomrom.

Et vanlig Lisp-uttrykk er vanligvis av typen:

( f a b c)
   Når dette blir levert til Lisp, vil lese-delen av les-evaluer-skriv løkka gå igjennom uttrykket for å se at hvert enkelt element - på alle nivåer - hver for seg er riktige uttrykk. Når Lisp så skal forsøke å evaluere uttrykket finner den forhåpentligvis en funksjon først i lista. Deretter går den videre igjennom argumentene ett for ett, dukker ned i evt. del-uttrykk og gjør det samme med dem, og anvender så funksjonen på de resulterende argumentene. Resultatet     av hele denne utregningen blir levert tilbake som verdien av uttrykket.



Anders Vinjar
Tue Jan 9 13:10:19 MET 1996