(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)))