私はスキームディープ・リバース(Lispの)
に(define (deep-reverse t)
(cond ((null? t) '())
((not (pair? t)) t)
(else (cons (deep-reverse (cdr t)) (deep-reverse (car t))))))
(define stree (cons (list 1 2) (list 3 4)))
1 ]=> (deep-reverse stree)
;Value: (((() . 4) . 3) (() . 2) . 1)
を基本的なツリーデータ構造のための深い逆を持って、私はクリーナーのように感じ、より良い結果が次のようになります。
(4 3 (2 1))
誰かが深い逆転機能でどこが間違っているのかについての指導をしてもらえますか?ありがとうございました。
ああ、ありがとう。私はライブラリ関数を避けようとしています(可能であれば、それは良いアイデアであるかどうかわかりません)が、リストを逆にすることはSchemeのやり方を知っていることです。 – zallarak
コードを少し説明してもらえますか?私はそれを勉強すれば分かりますが、それは私には直感的ではありません。 – zallarak
説明はほとんどの回答に既にあります。あなたがまだ知りませんが、 'map'は関数をリストのすべての要素に適用し、その結果を新しいリストに返します。 'lambda'は無名関数を定義します。 –