列出的int我有一個像「樂趣,ARG1,ARG2」 <線 - 它是一個字符串轉換字符串列表Common Lisp中
我用「」分隔這個字符串分割成字符串列表。然後我將「fun」與一些字符串(例如「Fibonacci」)進行比較。
功能的分裂(正常工作)
(defun split-str (string &optional (r nil))
(let ((n (position "," string
:from-end t
:test #'(lambda (x y)
(find y x :test #'string=)))))
(if n
(split-str (subseq string 0 n)
(cons (subseq string (1+ n)) r))
(cons string r))))
測試功能
(defun tmp (a)
(if (string= (nth 0 a) "Fibonacci")
(progn
(setf tab '())
(dolist (n (cdr a))
(cons tab '(parse-integer n))) ; parsing works fine (checked with write)
(write tab)) ; always NIL
;(apply #'parse-integer (apply #'values a)) - doesn't work
(write "nok")))
呼叫:
(tmp (split-str "Fibonacci,15,33"))
爲什麼我的標籤還沒有2元?
請顯示包含正確拆分的輸出軌跡,並顯示您在選項卡中獲得的內容。有關準則,請參閱http://stackoverflow.com/help/mcve和其他介紹性幫助文檔。 – Prune
請[請正確格式化您的代碼](https://google.github.io/styleguide/lispguide.xml#Formatting)。 – sds
打開你的REPL並輸入'(setf tab'())'''(cons tab 2)','tab'。想想幾分鐘的結果。然後在你的好書中閱讀清單的介紹。 – molbdnilo