Schemeで呼び出された回数を返す関数は次のようになります。
(define count
(let ((P 0))
(lambda ()
(set! P (+ 1 P))
P)))
(list (count) (count) (count) (count)) ==> (list 1 2 3 4)
しかし、次のような式があるとします。
(map ______ lst)
そして私たちはそれを評価したい
(list 1 2 3 ... n)
where n = (length list)
この問題では、空白でラムダステートメントを使用する必要があり、空白で(count)のような補助定義を使用できないため、
(lambda (x) (count))
許可されていません。(カウント)を次のような前の定義に置き換えるだけです。
(map
(lambda (x)
((let ((P 0))
(lambda ()
(set! P (+ 1 P))
P))))
L)
どちらも機能しません。
助言がありますか?