0
(define (list-ref items n)
(cond ((null? items) "Out of range exception")
((= n 0) (car items))
(list-ref (cdr items) (- n 1))))
(list-ref (list 1 2 3) 6)
5
爲什麼它總是返回值(- n 1)
?爲什麼它不執行(list-ref (cdr items) (- n 1))
?康德在計劃中的工作原理是什麼?
我明白。但爲什麼編譯器不評估'(list-ref(cdr items)( - n 1))'? – Anatoly
它做到了。它將'list-ref'評估爲真實性條件(總是爲真),並將'(cdr items)'和'( - n 1)'作爲「then」表達式。最後一個值被返回。 –
在Scheme中,只有'#f'被認爲是false。其他任何價值都被視爲真實。 –