BSc KICursus Natuur & Berekening 2025-26

Software

Check basiskennis van LISP

Check zonodig eerst de slides “Genetisch Programmeren” en/of een LISP tutorial. Controleer zonodig je antwoord middels een online LISP interpreter.

Atomen en lijsten

Herinner: LISP kent slechts 2 verschillende typen: atoom en lijst.

  • Wat is het type van FOO?
    Atoom.
  • Wat is het type van 42?
    Atoom. Getallen zijn atomen.
  • Wat is het type van (FOO BAR)?
    Lijst.
  • Wat is het type van (FOO, BAR)?
    Noch atoom, noch lijst: komma's zijn verboden.
  • Wat is het type van FOO BAR?
    Noch atoom, noch lijst: om een lijst moeten haakjes.
  • Wat is het type van ()?
    Lijst. (De lege lijst.)
  • van ((FOO BAR 2) HOP)?
    Een lijst met twee elementen: de lijst (FOO BAR 2) en het atoom HOP
  • Wat is het type van T (de expressie die in LISP true representeert)?
    Atoom.
  • Wat is het type van NIL (de expressie die in LISP false representeert)?
    Zowel atoom als lijst. NIL is een afkorting voor de lege lijst. NIL is het enige atoom dat tevens lijst is.

Rekenen

Voorspel waarnaartoe de volgende expressies evalueren.

  • 3
    3 [getallen evalueren naar zichzelf]
  • (+ 2 5)
    7
  • (- 2 5)
    -3
  • (- 9 3 2)
    4
  • (* 3 (2 5))
    Error. Er ontbreekt een operand voor de 2.
  • (* 3 (+ 2 5))
    21
  • (* 1 2 3 4)
    24
  • (* 1 2 -3 4)
    -24

T, NIL, lege lijst

Dezelfde vraag.

  • T
    T [evalueert naar zichzelf]
  • NIL
    NIL [evalueert naar zichzelf]
  • (ATOM 'T) (is 'T een atoom?)
    T [het letterlijke symbool T is natuurlijk een atoom]
  • (ATOM T)
    T [T evalueert naar zichzelf, en T is een atoom]
  • (LISTP T) (is T een lijst?)
    NIL
  • (ATOM NIL)
    T
  • (LISTP NIL) (is NIL een lijst?)
    T [zoals boven aangegeven, is NIL een afkorting voor de lege lijst; NIL is het enige atoom dat ook een lijst is]

Predikaten

Dezelfde vraag. Het atoom C is gebonden aan 4.

  • (LISTP '(A B C))
    T
  • (LISTP (A B C))
    Error. [het atoom A is gebonden aan het getal 2, en het getal 2 is geen functie die kan worden toegepast op de waarden die zijn gebonden aan de atomen B en C---als B en C al gebonden zijn]
  • (< 3 4)
    T
  • (> 3 4)
    NIL
  • (EQ 3 4)
    NIL
  • (EQ C 4)
    T
  • (EQ 'C 4)
    NIL

Functies

Geef aan wat de evaluatie van (f 2 3) oplevert

  • (DEFUN f (X Y) (- Y X))
    1
  • (DEFUN f (X Y) (* X Y 5))
    30
  • (DEFUN f (X Y) (LIST X Y X Y))
    (2 3 2 3)
  • (DEFUN f (X Y) (< X Y))
    T
  • (DEFUN f (X Y) (<= Y X))
    NIL

QUOTE en EVAL

De atomen A, B, en C zijn gebonden aan respectievelijk 2, 3, en 4.

  • A
    2
  • '(A B C)
    (A B C)
  • (A B C)
    Error. [het atoom A is gebonden aan het getal 2, en het getal 2 is geen functie die kan worden toegepast op de getallen 3 en 4]
  • (+ A 3)
    5
  • '(+ A 3)
    (+ A 3)
  • (EVAL '(+ A 3))
    5
  • 9
    9 [een getal evalueert naar zichzelf]
  • (EVAL 9)
    9 [9 evalueert naar 9, evalueert naar 9]

CAR en CDR

De atomen A, B, en C zijn weer gebonden aan respectievelijk 2, 3, en 4.

  • (CAR '(A B C))
    A
  • (CAR (A B C))
    2
  • (CDR '(A B C))
    (B C)
  • (CDR (A B C))
    (3 4)
  • (CAR (CDR '(A B C)))
    B
  • (CAR (CDR (A B C)))
    3

SET en SETQ

Het atoom Y is gebonden aan het atoom X.

  • Welke waarde heeft X na (SETQ X 3)?
    3
  • Welke waarde heeft X na (SET 'X 3)?
    3 [zelfde effect]
  • Welke waarde heeft X na (SET X 5)?
    Error. [alvorens X aan een waarde te binden wordt deze geëvalueerd; maar X is op dat moment niet gebonden]
  • Welke waarde heeft X na (SET Y 4)?
    4 [alvorens Y aan een waarde te binden wordt deze geëvalueerd; dat is X; vervolgens wordt X gebonden aan 4]

LIST en NTH

De atomen A, B, en C zijn weer gebonden aan respectievelijk 2, 3, en 4.

  • (LIST 'A 'B 'C)
    (A B C)
  • (LIST 'A B 'C)
    (A 3 C)
  • (LIST (A B) C)
    ((2 3) 4)
  • (NTH 0 '((A B) C (D E F) G))
    (A B)
  • (NTH 1 '((A B) C (D E F) G))
    C
  • (NTH 2 '((A B) C (D E F) G))
    (D E F)
  • (NTH 3 '((A B) C (D E F) G))
    G
  • (NTH -1 '((A B) C (D E F) G))
    G

SETF

De atomen A, B, en C zijn weer gebonden aan respectievelijk 2, 3, en 4. Het atoom X is gebonden aan de lijst (A B C). Waar is X aan gebonden na evaluatie van de volgende expressies?

  • (SETF (NTH 0 X) 'C)
    (C B C)
  • (SETF (NTH 1 X) 'C)
    (A C C)
  • (SETF (NTH 2 X) 'A)
    (A B A)
  • (SETF (NTH 0 X) C)
    (4 B C)
  • (SETF (NTH 2 X) A)
    (A B 2)
  • (SETF (NTH 2 X) B)
    (A B 3)

PROGN

Geef aan wat wordt afgedrukt.

  • (PROGN (PRINT 1) (PRINT 2))
    Eerst een 1 en dan een 2.
  • (PROGN (PRINT 1) (SETQ X 4) (PRINT 2))
    Eerst een 1 en dan een 2. De SETQ statement heeft geen zij-effecten (i.e., heeft geen andere werking dan X te binden aan 4).
  • (PROGN NIL (PRINT 2))
    Een 2.
  • (PROGN (+ 2 3) (PRINT (* 7 2)))
    14. Met het resultaat van de evaluatie van de som-expressie (5) wordt niets gedaan.

Hoe heb ik deze test volbracht?
Gefeliciteerd, je bent geslaagd.


Laatst gewijzigd op woensdag 13 november 2024, om 15:02 uur commentaar welkom Translate to en, ru, or tr