検索されている番号が (問題の説明ではなくコードから推測される) と仮定すると、5
要求されていることを既に実行しているプロシージャがあり、次のように呼ばれmember
ます。
(member 5 '(1 3 5 7))
=> '(5 7)
ドキュメントによると、これは次のとおりです。
等しい lst の最初の要素を見つけますか? そのような要素が存在する場合、その要素で始まる lst の末尾が返されます。それ以外の場合、結果は #f になります。
しかし、同様の手順をゼロから実装する場合、空白を埋めるソリューションは次のようになります。
(define five?
(lambda (lon)
(if <???> ; is the list empty?
<???> ; then the number is not in the list
(or <???> ; otherwise the current element is 5 or
(five? <???>))))) ; the number is in the rest of list
コードをテストすることを忘れないでください:
(five? '())
=> #f
(five? '(1 2 3 6 7 9))
=> #f
(five? '(1 2 3 5 7 9))
=> #t