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.cvičenie
- Štruktúry
- Zadefinujte unárnu funkciu share?,
ktorá vráti hodnotu "pravda", ak
object
zdieľa svoju štruktúru.
Príklad:
(define x (list 1 2 3))
(define y (cons x x))
(share? x) -> nil
(share? y) -> #T
(define (share? object) ...
- Zadefinujte unárnu funkciu maximize,
ktorá vráti object upravený
tak, aby nezdieľal svoju štruktúru.
Príklad:
(define x (list 1 2 3))
(define y (cons x x))
(define z (maximize y))
(eq? y z) -> nil
(equal? y z) -> #T
(define (maximize object) ...
- Zadefinujte unárnu funkciu structures,
ktorá vráti zoznam všetkých
štruktúr pozostávajúcich z n
párov nad symbolom "a".
(define (structures n) ...
- Rady
- Zvoľte si vhodnú reprezentáciu radu a zadefinujte k nej
interface:
- konštruktor empty-queue,
- test empty-queue?,
- selektory first-queue,
write-queue,
- mutanti insert-queue!,
delete-queue!.
- Zadefinujte nulárnu funkciu generate-front,
ktorá vytvorí rad implementovaný metódou
"message passing". Nový objekt má
poznať rovnaké operácie ako v predchádzajúcom
cvičení.
(define (generate-front) ...
- Tabuľky
- Zadefinujte interface k tabuľkám:
- konštruktor empty-table,
- selektor find-table,
- mutanti insert-table!,
delete-table!.
- Zadefinujte unárnu funkciu fib-mem,
ktorá vráti n-té Fibonacciho
číslo. Výsledky si uchováva v tabuľke, a
môže ich využiť pri dalších
aplikáciách alebo výpočtoch.
(define fib-tab (empty-table))
(define (fib-mem n) ...
Last Updated on 09-Nov-2000
By Petrovic Pavol
E-mail: ppetrovi@dent.ii.fmph.uniba.sk