======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>