(define (find-name s los)
(cond [(empty? los) false]
[(cons? los)
(ormap
(local
((define robot s))
))])))
基本上,这会消耗名称和名称列表,并确定是否有任何名称 后者是平等的
有人能告诉我我做错了什么吗?我正在使用ISL。
答案 0 :(得分: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)))