2
(define (find-name s los)
  (cond [(empty? los) false]
        [(cons? los)
         (ormap
          (local
            ((define robot s))
            ))])))

基本的に、これは名前と名前のリストを消費し、後者の名前のいずれかが等しいかどうかを判断します

誰かが私が間違っていることを教えてもらえますか? ISLを使用しています。

4

1 に答える 1

3

プロシージャは最初の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)))
于 2013-10-16T05:05:39.820 に答える