Symbolické programovanie a LISP, zima 2000/2001

(vychádza z prednášky Funkcionálne programovanie, Ivan Kalaš)
Petrovič Pavol, Ústav Informatiky, č.d. 15
e-mail: ppetrovi@www.ii.fmph.uniba.sk
www k prednáške: http://dent.ii.fmph.uniba.sk/vyuka/lisp

7.prednáška

interface


funkcie


[] (define a1 '(a b)) a1
[] (define a2 (cons 'c a1)) a2
[] (define a3 '(e f)) a3

[] (set-car! a2 a3)  

[] (set-car! a1 'd)  


append!


cons

[] (define x (cons 1 2)) x

[] (define y (cons x x)) y

0
[] (set-car! (cdr y) 3)  

Poznámka: Telo funkcie set-car! sa vyhodnotí v prostredí env3!


eq?, memq vs. equal?, member


let*

(let* ((<var1> <exp1>) ... (<varn> <expn>)) <body>)

(let* ((<var1> <exp1>)
        (<var2> <exp2>)
...................................
        (<varn> <expn>))
   <body>)
= (let ((<var1> <exp1>))
   (let ((<var2> <exp2>))
...................................
      (let ((<varn> <expn>))
         <body>)

let* umožňuje v S-výraze <expi> využiť (už zadefinované) premenné var1 ... var(i-1)

 

Last Updated on 09-Nov-2000
By Petrovic Pavol
E-mail: ppetrovi@dent.ii.fmph.uniba.sk