手順のリストがある場合。foldr次の呼び出しにどのように使用できますか?Like(new abs)=>(new(abs x))注:foldrプロシージャを返す必要があります。
私は持っています
(define next
(lambda (ls)
(foldr (lambda (x) x) (lambda (x) x) ls)))
しかし、これはエラーを引き起こしています...
手順のリストがある場合。foldr次の呼び出しにどのように使用できますか?Like(new abs)=>(new(abs x))注:foldrプロシージャを返す必要があります。
私は持っています
(define next
(lambda (ls)
(foldr (lambda (x) x) (lambda (x) x) ls)))
しかし、これはエラーを引き起こしています...
に渡される最初のプロシージャには、次foldrのような2つのパラメータが必要です。
(define next
(lambda (ls)
(foldr (lambda (x a) <???>) ; It's not clear what do you want to do inside
(lambda (x) x) ; this is the identity function, what's it for?
ls)))
ただ明確にします:
foldrは実行されるプロシージャーであり、2つの引数を受け取ります。最初のパラメーターはリスト内の現在の値であり、2番目のパラメーターはこれまでの累積値です。foldrは初期値です。恒等関数を渡しているのではないかと疑われていますが、正しくないに違いありません。foldrは、処理されるリストです。foldrの2番目の引数は、結果の初期値である必要があります。通常は空のリストです。