2015-06-20 78 views
0

如何从其他列表中检索包含特定单词的项目(字符串)列表。下面是一个例子:。lisp中的搜索功能

(setq l '("word1_jj" "word2_mm" "word3_jj" "word4_kk")) 

我想提取所有字符串,其中数字“_jj

+0

一种可能的方式是使用其中一个谓语一个子串匹配过滤器。 – h7r

回答

1

你应该让ends-with-p取单词和结尾要做到这一点,你看看有多少个字符在两个字符串,并使用subseq来制作一个单词的最后一个字母组成的字符串,可以使用equal与提供的参数应该匹配检查

当你有,你可以这样做:。

(remove-if-not (lambda (x) (ends-with-p x "_jj")) 
       '("word1_jj" "word2_mm" "word3_jj" "word4_kk")) 

; ==> ("word1_jj" "word3_jj") 

或者你可以做一个make-end-predicate返回一个lambda,需要一个词:

(remove-if-not (make-end-predicate "_jj") 
       '("word1_jj" "word2_mm" "word3_jj" "word4_kk")) 

; ==> ("word1_jj" "word3_jj") 
+0

非常感谢! =)真的很感激它 –