2013-01-19 79 views
-1

可能重複:
Coercing numbers to lists in common lisp如何從一個整數一個單一的數字Common Lisp中

我在Common Lisp的初學者。

如果我有號碼123456890,我想單獨獲取號碼1 2 3 5 9如何在普通的lisp中執行此操作?

+2

你會怎麼做_any_語言? –

+0

我沒有真正嘗試過任何常見的lisp。我記得很久以前,我曾嘗試在C語言中使用for循環和「%10」,但無論我如何更改它,它都不起作用,並且當其中一個數字爲0時出現問題。 – imu96

回答

0

首先,很明顯,這個問題在多次解決之前就已經解決了,而且在您提出問題之前,您必須先搜索解決方案,否則會讓其他人難以找到一個好的解決方案。所以,這裏有一個較老的答案:Coercing numbers to lists in common lisp

(defun int-to-list (int) 
    (assert (>= int 0) nil "Argument must be non-negative") 
    (if (= int 0) (list 0) 
     (loop with result = nil 
     while (> int 0) do 
      (multiple-value-bind (divisor remainder) 
       (floor int 10) 
      (push remainder result) 
      (setf int divisor)) 
     finally (return result)))) 
相關問題