【发布时间】:2021-10-01 07:13:23
【问题描述】:
你可以注意到函数体中lambda中的v,v是从哪里来的,它是基于什么的?
(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)))))])
(lambda (v) (f v))))
【问题讨论】:
标签: function lambda arguments racket programming-languages