(define (find-name s los)
(cond [(empty? los) false]
[(cons? los)
(ormap
(local
((define robot s))
))])))
基本的に、これは名前と名前のリストを消費し、後者の名前のいずれかが等しいかどうかを判断します
誰かが私が間違っていることを教えてもらえますか? ISLを使用しています。
プロシージャは最初のormap
引数としてプロシージャを想定し、リストの反復を処理します (手作業で行う必要はありません)。また、そもそもなぜ使用しているのかわかりませんlocal
。もしかして、こんなことを書くつもりだったの?
(define (find-name s los)
(ormap (lambda (e)
(or (equal? s e) (string-contains? s e)))
los))
編集:を使用することもできlocal
ますが、単純に . を渡す方が慣用的lambda
です。方法は次のとおりです。
(define (find-name s los)
(local [(define (f e) (or (equal? s e) (string-contains? s e)))]
(ormap f los)))