我必须编写一个程序,通过搜索给定的子字符串来搜索列表中的所有“单词”例如:(monday thursday friday)搜索“ida”=星期五。
像这样的:

(nth iday '(monday hello sup friday))

但它一直在标记错误。

最佳答案

你的表情毫无意义nth用于按索引访问元素。
您可以使用remove-if-not从列表中仅获取匹配的字符串:

(defun find-matching-substr (substr-sym list-of-symbols)
  (remove-if-not (lambda (sym)
                   (search (string substr-sym)
                           (string sym)))
                 list-of-symbols))

CL-USER> (find-matching-substr 'day '(monday hello sup friday))
(MONDAY FRIDAY)

关于search - 依部分搜寻字词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26065690/

10-11 21:51