Lisp 计算不以给定字母开头的单词

Lisp 计算不以给定字母开头的单词,lisp,common-lisp,clisp,Lisp,Common Lisp,Clisp,所以我用Lisp编写了这个函数,它计算列表中有多少单词不是以给定字母开头的。 但是我现在需要编辑它,在我的函数中不使用let,而是保留char和string。 感觉有点受阻,因为我已经开始口齿不清了没多久了,走吧!有人能帮我吗 例如: 其他人“艺术鼻子”脚鼻子保持沉默从不=>4 这就是我所做的,但需要删除let: (defun others (x liste) (let ((c (char (string x) 0))) (cond ((not liste) 0)

所以我用Lisp编写了这个函数,它计算列表中有多少单词不是以给定字母开头的。 但是我现在需要编辑它,在我的函数中不使用let,而是保留char和string。 感觉有点受阻,因为我已经开始口齿不清了没多久了,走吧!有人能帮我吗

例如: 其他人“艺术鼻子”脚鼻子保持沉默从不=>4

这就是我所做的,但需要删除let:

(defun others (x liste)
  (let ((c (char (string x) 0)))
    (cond
      ((not liste) 0)
      ((char= (char (string (car liste)) 0) c) (others x (cdr liste)))
      (t (+ 1 (others x (cdr liste)))) ) ) )
一种解决方案是在参数列表中使用&aux变量。这使您可以像let一样在函数中绑定变量。这是一种在函数开始时使用let而不显式使用let的方法

一种解决方案是在参数列表中使用&aux变量。这使您可以像let一样在函数中绑定变量。这是一种在函数开始时使用let而不显式使用let的方法


下面是一个迭代版本:

“艺术鼻子”中的单词循环脚鼻子保持沉默永不 对于c=\n count not char=c char字0
循环可以通过示例学习,这里有一个迭代版本:

“艺术鼻子”中的单词循环脚鼻子保持沉默永不 对于c=\n count not char=c char字0
循环可以通过示例学习,另一种内置方式是:

> (count 'n
         '(art nose foot nose take silence never)
         :test #'(lambda (a b)
                   (string/= a b :end1 1 :end2 1)))
-> 4

另一种内置方式是:

> (count 'n
         '(art nose foot nose take silence never)
         :test #'(lambda (a b)
                   (string/= a b :end1 1 :end2 1)))
-> 4

非常感谢你!我考虑过&aux,但不确定如何与char一起使用它@valerie由于c只使用一次,另一个解决方案是根本不绑定变量,只在使用c的地方替换字符字符串x0。非常感谢!我考虑过&aux,但不确定如何与char一起使用它@valerie由于c只使用一次,另一种解决方案是根本不绑定变量,只在使用c的地方替换字符字符串x 0。用于测试空列表的函数称为null。用于测试空列表的函数称为null。