2016-08-20 86 views
1

我可以使用findf基礎上找到一些程序列表中的元素的元素的索引:查找列表

(define sl '("tester" "testing" "other words" "for test of")) 
(findf (lambda (x) (string-contains? x "test")) sl) 

輸出:

'("tester" "testing" "for test of") 

我怎樣才能得到滿足的要素指標一些返回true和false的過程,比如「string-contains?」以上 ?我想有以下在上述情況下的輸出:

'(0 1 3) 

回答

2
#lang racket 

(define (find strings needle) 
    (for/list ([s strings] 
      [i (in-naturals)] 
      #:when (string-contains? s needle)) 
    i)) 

(find '("tester" "testing" "other words" "for test of") 
     "test") 
+0

我想有一個功能,我可以發送任何功能,只是因爲我可以發送任何功能findf。我怎樣才能做到這一點? – rnso

+1

將參數'neeedle'改爲'f'。然後用'f'替換''(string-contains?s needle)'測試。 – soegaard