我想编写一个从字符串中删除所有元音的函数。我想定义一个检测元音的函数,类似于 symbolp、zerop 等,如果是元音,删除它。我怎样才能做到这一点?我将不胜感激对此的任何意见。谢谢
(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))