我想写一个从字符串中删除所有元音的函数。我想过定义一个检测元音的函数,类似于symbolp,zerop等等,如果它是元音,就删除它。我怎样才能做到这一点?我将不胜感激这方面的任何投入。由于LISP-从字符串中删除元音
(defun deletevowels (string)
(go through the list
(if vowel-p deletevowels)
)
)
不过,我有一个删除一个元音,如果它是最后一个问题,我怎么能修改此满足了我想做的事,删除字符串中的所有元音?在下面的代码中,我提到了这个函数,元音-p。
(defun strip-vowel (word)
"Strip off a trailing vowel from a string."
(let* ((str (string word))
(end (- (length str) 1)))
(if (vowel-p (char str end))
(subseq str 0 end)
str)))
(defun vowel-p (char) (find char "aeiou" :test #'char-equal))
而且,是比较容易,如果我会用下面的函数把字符串到一个列表,然后循环列表而不是字符串来寻找元音和删除它?
(defun string-to-list (string)
(loop for char across string collect char))
只使用'REMOVE-IF'。 –
所以你说的是循环的字符串和删除 - 如果vowelp? –
'(defun定义delete_vowels(字) (让(STR(串字)) (端( - (长度STR)1)) ) (删除-如果#'元音 - 对STR端) ) ( defun vowel -p(char)(找到char“aeiou”:test#'char-equal))' 我在做什么错? –