图。 “如何设计程序”中的65如下:
; Nelon -> Number
; determines the smallest number on l
(define (inf l)
(cond
[(empty? (rest l)) (first l)]
[else
(local ((define smallest-in-rest (inf (rest l))))
(cond
[(< (first l) smallest-in-rest) (first l)]
[else smallest-in-rest]))]))
有人可以解释变量中最小的变量是如何工作的。我在函数中得到递归但变量让我感到困惑
答案 0 :(得分:1)
这只是以下的简写(简写;-)):
(let ((smallest-in-rest (inf (rest l))))
(cond
[(< (first l) smallest-in-rest) (first l)]
[else smallest-in-rest]))
let
应该清楚地表明我们只是存储(inf (rest l))
的结果,这样它只需要在代码中写入一次,而不是一次写入cond
的每个分支。 {1}}。