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