我想寫一個遞歸回文函數。代碼工作使用兩種功能如下: (設置str
(ABCD))LISP - 遞歸回文
(defun reverseString (l)
(cond
((null l) nil)
(T (append (reverseString (cdr l)) (list (car l))))
)
)
(defun palindrome (l)
(cond
((null l) nil)
(T (append l(reverseString (cdr l)) (list (car l))))
)
)
不過,我試圖把它合併成一個單一的功能:
(defun palindrome (l)
(cond
((null l)
nil
)
(T
(append str(append (palindrome (cdr l)) (list (car l))))
)
)
)
這將返回(ABCDABCDABCDABCDDCBA)
我希望它返回的位置(abcddcba),然後最終(abcdcba)**當它顛倒時不重複最後一個字符。
我知道有更簡單的方法來做到這一點我們預定義的功能,但我試圖挑戰自己一點。不過,我卡在這裏,幫助將不勝感激。
最後一個函數有一個錯誤:'str'是一個未定義的變量。 – Renzo
str是早先設置的,不適合更新帖子。 – nikebOxer