【发布时间】:2021-10-01 12:30:49
【问题描述】:
我之前问过一个类似的问题,我只是想确保我理解这个想法,在 -lambda(x)- 第 4 行,x 是什么,它来自哪里?
(define (cached-assoc xs n)
(letrec ([memo (make-vector n #f)]
[acc 0]
[f (lambda(x)
(let ([ans (vector-assoc x memo)])
(if ans
(cdr ans)
(let ([new-ans (assoc x xs)])
(begin
(vector-set! memo acc (cons x new-ans))
(set! acc (if (= (+ acc 1)) 0 (+ acc 1)))
new-ans)))))])
f))
【问题讨论】:
-
如果
f是一个接受一个参数的函数,则f等价于(lambda (x) (f x))。 (比较(f 1)和((lambda (x) (f x)) 1)。)
标签: function lambda arguments racket programming-languages