2013-10-16 51 views
2
(define (find-name s los) 
    (cond [(empty? los) false] 
     [(cons? los) 
     (ormap 
      (local 
      ((define robot s)) 
      ))]))) 

基本上消耗了一個名字和名稱的列表,並確定任何對後者的名字 是否相等使用本地和ormap

有人能告訴我什麼,我做錯了什麼?我正在使用ISL。

回答

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))) 
+0

謝謝,但有可以使用本地這個問題的任何方式? – Josh

+0

@Josh這不是_that_慣用,但是,你可以使用它。看到我編輯的答案。 –