next up previous contents index
Next: Index Up: Litt om Lisp Previous: Når feil oppstår

Lisp-uttrykk

   Som sagt krever Lisp at det vi leverer til den er skikkelige Lisp-uttrykk. De grunnleggende typer uttrykk i Lisp ble kort nevnt på side gif, men det er grunn til å utdype litt. Som vi har sett kan disse grunn-uttrykkene kombineres til sammensatte uttrykk.





tall
   i Lisp er det ikke noe spesielt med. Muligens bortsett fra at de kan bestå av vilkårlig mange enkeltsifre. De kan ha et minus-tegn først (f.eks ). De kan inkludere ett eneste desimaltegn --- et punktum --- med et vilkårlig antall sifre bak desimaltegnet. Noen eksempler på tillatte tall er gitt i oversikten på side gif.

symbol
   er det vi kan bruke som variabel, funksjon osv.. Symboler er enten bundet til en bestemt verdi, eller ubundet. Måten å binde en verdi til et symbol på avhenger litt av hva slags verdi det er. To måter vi kommer til å bruke mye er
( defun symbol [verdi])  
hvis verdien vi skal binde til symbolet er en funksjon, og
( setf symbol verdi)
   
for å binde andre typer verdier til et symbol.

Vi kan skrive

( setf kvart 0.25)
( setf kvint 0.2)
og senere bruke disse symbolene i regneuttrykk:
(+ kvart kvint) 0.45 (* kvart kvint pi) 0.1570796350201586d0

For å kunne bruke symbolene i regneuttrykk må de alt ha en verdi, ellers får vi en feilmelding. Mange symboler er allerede definert i Lisp, f.eks.\ har symbolet pi den ``vanlige'' verdien av . To av de viktigste symbolene som alt har verdi heter t og nil,     og de betyr noe sånt som ``sant'' og ``usant''.

En konstruksjon du må kunne i forbindelse med symboler er:   

( quote uttrykk)
eller den forkortede skrivemåten:
' uttrykk
Vi sier at quote hindrer evaluering. Verdien som Lisp returnerer er navnet på symbolet.

string
   En string består av et anførselstegn etterfulgt av null eller flere tegn, og avsluttet med et anførselstegn. Det er noen veldig få tegn som ikke får delta i stringen uten videre. (Prøv å gjett hvilke!)

tegn
   Hvis du absolutt må skrive enkelt-tegn må du bruke den noe sære skrivemåten hæsj-bækkslæsj - #\a - for tegnet a. Det fins endel ``ikke-skrivbare-tegn''    som ikke er i alfabetet eller som ikke fins på tastaturet, f.eks. fins det tegn for linje-skift, slutten av en fil osv. Fatt mot, vi kommer til å ha lite eller ingen direkte kontakt med denne formen for enkelt-tegn i resten av dette heftet.

liste
   i Lisp består av en parantes- start, etterfulgt av et eller flere Lisp-uttrykk adskilt av mellomrom, og lukket igjen med en parantes- slutt. Mellomrom er et eller flere space-tegn, tabulator-tegn eller linjeskift i alle kombinasjoner.

``Faren ligger ikke i at datamaskiner begynner å tenke som oss, men derimot i at vi begynner å tenke som datamaskiner...''



next up previous contents index
Next: Index Up: Litt om Lisp Previous: Når feil oppstår



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