My機能は、以下のようになります入力を受け入れる必要があります。スキームで余分なリストレベルを取り除くには?
(getlist '(a b '(a b) 1 2 '() '(1 2)))
機能しなければならないし、元のリスト内のリストのすべてのリストを出力。だから、出力は
"((a b)()(1 2))"
ようにする必要がありますが、私はこれを取得しています:
"((quote (a b)) (quote()) (quote (1 2)))"
私は右の値を取得していますが、それらが接続されているすべての引用符で余分なリスト内にラップされています。これをどうやって解決するのですか?
はありがとうございました 入力リストが本当にリスト(quote (a b))
、
(quote())
、および
(quote (1 2))
を含んでいますのでです
;function to return all lists in a list
(define (getlist lst)
;if list is empty
(if (null? lst)
;true
'()
;false
(if (list? (car lst))
;true
(cons (car lst) (getlist (cdr lst)))
;false
(getlist (cdr lst)))))
'getlist'は' filter'実装しています:
修正プログラムは、最も外側の1以外のすべての引用符を削除するのですか? '(フィルタリストを「(AB(AB)1 2()(1 2 ))) ' – suchtgott