私はSchemeが初めてで、これが私の最初の関数型言語です。ほとんどすべてを再帰的に実装することは、私にとって厄介なようです。それにもかかわらず、単一の整数入力を持つ階乗およびフィボナッチ問題の関数を実装することができました。
しかし、関数にリストの入力がある場合はどうでしょうか? この演習を仮定します:
FUNCTION: ret10 - 指定されたリストで見つかった 10 より大きいすべての数値を抽出してリストとして返します。 guile> (ret10 '(xe (hn) 1 23 12 o)) OUTPUT: (23 12)
これで関数の引数として(c(list) を定義) する必要がありますか? または他の方法はありますか?
助けてください。ありがとう!
以下は、オスカー・ロペス卿の回答に基づいた私の派生ソリューションです..これが他の人に役立つことを願っています:
(define (ret10 lst)
(cond
((null? lst) '())
((and (number? (car lst)) (> (car lst) 10))
(cons (car lst)
(ret10 (cdr lst))))
(else (ret10 (cdr lst)))
)
)