私はここ数ヶ月間Scheme R5RSを自分自身で教えていて、変更可能な機能について学習し始めました。私はこれのようないくつかの機能を果たしましたが、私の間違いを見つけるようです。SCHEME変更可能な機能
(define (lst-functions)
(let ((lst '()))
(define (sum lst)
(cond ((null? lst) 0)
(else
(+ (car lst) (sum (cdr lst))))))
(define (length? lst)
(cond ((null? lst) 0)
(else
(+ 1 (length? (cdr lst))))))
(define (average)
(/ (sum lst) (length? lst)))
(define (insert x)
(set! lst (cons x lst)))
(lambda (function)
(cond ((eq? function 'sum) sum)
((eq? function 'length) length?)
((eq? function 'average) average)
((eq? function 'insert) insert)
(else
'undefined)))))
(define func (lst-functions))
((func 'insert) 2)
((func 'average))
'((func 'sum))'期待どおりに動作しません。 – Sylwester
あなたはそうです、今修正されました。ありがとう! –