這僅僅是一個愷撒密碼Common Lisp中設置爲5旋轉鍵的顯示字符串的列表,而不是一個顯示一個字符串
我有幾個限制
輸入必須是作爲列表遞歸地讀取和處理。
不允許使用變量,數組,循環,預測。
輸出必須是字符串而不是列表。
程序只能使用遞歸。
(defun encode (expr) ; define function funcName (argument)
; Out case when the list is empty
(cond ((null expr) nil) ; conditional (test1 action1)
; Checking if the expression is an atom only then to go encryption
((atom expr) (encrot expr)) ; test2 see if one or less atom
; Adding the result of encrot to the list and
(t(cons (encode(car expr)) (encode(cdr expr)))))) ; will run if all others fail
(defun encrot (expr)
; casts the object and then shifts the char by 5
(string (int-char(encrot2 (+ 5 (char-int(char (string expr) 0)))))))
(defun encrot2 (x)
; Checking to see if the atom is a letter
(cond ((> x 90) (+ 64 (mod x 90)))
((< x 91) x)))
我的理解是,該功能利弊顯示列表作爲字符串的元素。例如(「A」「B」「C」)
作爲一個字符串,理論上應該是這樣的"A B C"
。
我使用GNU CLISP 2.49編譯(2010-07-07)http://clisp.cons.org/。
你能舉一個例子(輸入+輸出)? – coredump
'cons'什麼也沒有顯示。它沒有做任何輸出。 'cons'只是構建一個cons cell。 –