0
listを入力として関数を出力する関数を作成しようとしています。私はリストをたどるために行わなければならない再帰呼び出しと混同しています。listを入力とし、関数を出力するschemeの関数
(define S (buildfunc '(1 0 -2 -3 4)))
例:入力として整数と
- をとる関数が生成される は、それに
- 正方形
- 2によって正方形を乗算した結果を、1を加算
- その最後の結果に3を掛けて、
- を加算し、4 (S 4)は出力関数である
場合、結果は次のようになります
4 + 1 = 5 - > 25 - > 25 * 2 = 50 - > 50 * 3 = 150 - 私は現在使用してい> 150 + 4 ==> 154
コードは次のとおり
(define (s n) (lambda (L) (buildfunc n L)))
(define (buildfunc n L)
(cond
((null? L) '())
((equal? (car L) 0) (* n n))
((positive? (car L)) (+ n (car L)))
((negative? (car L)) (* n (car L)))
(else
(buildfunc n (cdr L)))))
(define C (s 3))
(C '(1 0 -2 -3 4))
'foldl'を使わずに関数を書く方法はありますか?私はスキームに慣れていないし、リストをたどる方法を理解しようとしている。 – Siva