我想寫一個從字符串中刪除所有元音的函數。我想過定義一個檢測元音的函數,類似於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))' 我在做什麼錯? –