Korreksjon til forelesning 05.09: Se …
Korreksjon til forelesning 05.09:
Se på kode2. Vi har lagt ut grammatikken som en assosiasjonsliste.
Funksjon for å plukke ut fra en assosiasjonsliste
(assoc nøkkel aliste)
I en grammatikk kan vi skille mellom terminalsymboler og kategorisymboler. Kategorisymboler er de som forekommer på venstre side av en regel.
Da kan vi skrive koden slik
(defun behandle (frase) (cond ((consp frase) (behandle-setning frase)) ((kategorisymp frase) (behandle-ord frase)) ((terminalp frase) (list frase))))
(defun behandle-setning (setning) (gå-gjennom-sett-sammen #’behandle setning))
(defun behandle-ord (ord) (let ((regel (assoc ord grammar))) (cdr regel)))
--- og så videre
Her har jeg tenkt meg egen test for om noe er terminal eller kategorisymbol. I koden i boka er dette bakt inn. Funksjonen gå-gjennom-sett-sammen er den map-funksjonen som Norvig har kalt mappend .