リストを取り、すべての「アトム」をトップレベルの要素に変換するPretty Big言語(Dr. Racket)を使用して、Schemeで関数を定義しようとしています。たとえば、次の場合:
(level '(a b (c d) (e f (g 4 h))))
;=> (a b c d e f g 4 h)
これが私がこれまでに持っているコードです:
;;level -takes list and returns list w/all elements as top-level
(define level
(lambda (L)
(cond ((null? L) L)
((not( pair? L)) L)
(else (append (level(car L)) (level(cdr L)))))))
私のエラーは次のとおりです。
append: contract violation
expected: list?
given: d
このエラーのトラブルシューティングを手伝ってくれる人はいますか?