======Z7.scm====== <code shell>#!/usr/bin/env racket #lang racket/base</code> 7. zpravidla vyhodnocovacky <code scheme> (list cons 'a 10) </code> ++=>|'(#<proc cons> a 10)++ <code scheme> (((lambda x) x) 'a 'b 'c) ;error nebo blbe zadani ((let ((x -)) x) 10 20 30) </code> ++=>| -40++ <code scheme> ((car (list map)) - '(1 2 3)) </code> ++=>| '(-1 -2 -3)++ <code scheme> (or 1 foo 2) </code> ++=>| 1++ <code scheme> (apply list '(a b) '(c d)) </code> ++=>| '%%((a b) c d)%%++ <code scheme> (eval (let ((x 5)) (lambda (y x)))) ;error nebo blbe opsano ((lambda (x) `(x `(,x ,,x))) 10) </code> ++=>|'(x `(,x ,10))++ <hidden rozepsano, zdůvodnění> <code scheme> ((lambda (x) `(x `(,x ,,x))) 10) ; |_| |\__,x je vnejsi, pro (x 10) ; |____| vnitrni quasiquote se nevyhodnoti ;bezprostředně aplikovaná ((lambda ...) 10) vrací '(x `(,x ,10))) </code> </hidden> <code scheme> (cadar '((a b) (c d) (e f))) </code> ++=>| 'b++ <code scheme> (let x ((y 10)) (list x y)) </code> ++=>|'(<proc> 10)++ <code scheme> ; vim: syntax=racket </code>