2010/03/17

untitled

↑これについて↓
@valvallow rember* -> Untitled http://ff.im/-hAI9g もうちょっと短く出来ます。(cons 何とか acc)と言うパターンに着目。「何とか」と言う引数が場合わけで引数内処理が可能です。

考えてみた。こういうことかな、と始めは思ったけども・・・。

(define (rember* a l)
(fold-right (lambda (e acc)
(let ((kons (lambda (kar)
(cons kar acc))))
(if (list? e)
(kons (rember* a e))
(if (eq? a e)
acc
(kons e)))))
'() l))
(rember* 'salad '((Swedish rye)
(French (mustard salad turkey))
salad))
view raw rember*.scm hosted with ❤ by GitHub

たぶん違う。こういうことかな。
(define (rember* a l)
(fold-right (lambda (e acc)
(if (eq? a e)
acc
(cons (if (list? e)
(rember* a e)
e)
acc)))
'() l))
(rember* 'salad '((Swedish rye)
(French (mustard salad turkey))
salad))
view raw rem*.scm hosted with ❤ by GitHub

The Seasoned Schemer

0 件のコメント:

コメントを投稿