リストのリストで作られたペアから 'ノーマル'リストを返すスキーム関数を作ろうとしています。リストのリストをノーマルリストのリスト
私はこのようなものに変更しようとしている。このような何かに
((((((() 1) 2) 3) 4) (12 13 14)) ((((() 8) 9) 10) 11) (5 6 7))
を:
(1 2 3 4 12 13 14 8 9 10 11 5 6 7)
私は末尾再帰を使用してみましたが、私のコードは、ちょうど同じ初期ペアを返します。 。
は、その後、私はこれをしなかったが、それはまた、動作しないとの種類のリストをシャッフル:
(define (tolist l1 lista)
(if (empty? (cdr lista))
null
(if (empty? (car lista))
(append l1 (cdr lista))
(tolist (append l1 (car lista)) (list (cdr lista))))))
私は何ができますか?
すべてのリストはペアで構成されています。 '(1 2 3)'は実際に ''(1。(2。(3。()))) ''という構造体です。それはあなたが探している( '' flatten'')(https://stackoverflow.com/questions/7313563/flatten-a-list-using-only-the-forms-in-the-little-schemer)ですか? – Sylwester