我必須編寫一個程序,將字符串的元音,輔音和其他符號分別轉換爲C,V和0.我已經完成了這項工作,但我想知道是否有更高效和更優雅的方法來執行此操作。將不勝感激輸入。LISP - 修改字符串
(defun string-to-list (string)
(loop for char across string collect char))
(defun is-vowel (char) (find char "aeiou" :test #'char-equal))
(defun is-consonant (char) (find char "bcdfghjklmnpqrstvwxyz" :test #'char-equal))
(defun letter-type (char)
(if (is-vowel char) "V"
(if (is-consonant char) "C"
"0")))
(defun analyze-word (word-string)
(loop for char across word-string collect (letter-type char)))
此外,我想使它成爲一個字符串,我怎麼能做到這一點?我應該定義一個函數來遍歷列表並將其設置爲一個字符串,還是更簡單的方法?
這個問題應該得到更好的http://codereview.stackexchange.com/問 – akluth
使用「地圖」來代替。如果你的格式和按照典型慣例縮進你的代碼,這將會有所幫助。 –
我不知道如何使用'MAP',你能幫我嗎? –