Hezky clanek, jen mala poznamka, ternarni operator jak je ukazan je spatne. Protoze Racket ( a Lispy) vyhodnocuji parametry driv, nez se funkce vykona nasledujici tedy selze:
(?: #t (/ 5 2) (/ 5 0))
Tohle se da resit pomoci makra, ktere vypada, az na klicove slovo, prakticky stejne:
(define-syntax-rule (?: podminka prvni-vyraz druhy-vyraz)
(if podminka prvni-vyraz druhy-vyraz))
28. 8. 2019, 18:06 editováno autorem komentáře