0
有人可以澄清爲什麼程序返回22嗎?很明顯,這個陳述不正確,但無論如何,它爲什麼會返回22?條件表達式,其語法和評估
謝謝你提前。
(define (proc x)
(cond (= x 22)
(display 3)
(display 4)
)
)
(proc 3)
有人可以澄清爲什麼程序返回22嗎?很明顯,這個陳述不正確,但無論如何,它爲什麼會返回22?條件表達式,其語法和評估
謝謝你提前。
(define (proc x)
(cond (= x 22)
(display 3)
(display 4)
)
)
(proc 3)
你忘了幾個括號。在此代碼:
(define (proc x)
(cond (= x 22)
(display 3)
(display 4)))
您正在測試,如果=
過程true
- 它是,因爲在計劃一切都是truthy,除了#f
,這是false
。並且,如果=
是true
,則返回對應於該條件的最後一個值,在這種情況下爲:22
。對於cond
正確的語法如下:
(define (proc x)
(cond ((= x 22)
(display 3)
(display 4))
(else 'error)))
(proc 22)
=> 34
(proc 3)
=> 'error
在第一COND子句,'='不是'#F'(它是一個原始操作者),因此它被認爲是真實的,'#t',和然後依次評估「x」和「22」,最終結果爲「22」。 – Renzo