小编And*_*dus的帖子

Lisp中的十进制到二进制 - 创建一个非嵌套列表

到达我的递归情况时,我使用list当前的结果附加未来结果,但由于递归,我最终得到了一个嵌套列表.当我有一个导致递归超过五次的数字时,这会导致错误.

任何想法如何在一个简单的非嵌套列表中得到结果,例如:

CL-USER 100:8>(BINARY_LIST 4)

(1 0 0)

代码和示例输出:

CL-USER 99 : 8 > (defun binary_list (i)
(COND 
    ((= i 0) 0)
    ((= i 1) 1)
    ((= (mod i 2) 0) (list (binary_list (truncate i 2)) 0))
    (t (list (binary_list (truncate i 2)) 1))
    )
)
BINARY_LIST

CL-USER 100 : 8 > (BINARY_LIST 4)
((1 0) 0)

CL-USER 101 : 8 > (BINARY_LIST 104)
((((# 1) 0) 0) 0)
Run Code Online (Sandbox Code Playgroud)

lisp binary recursion list

3
推荐指数
1
解决办法
2680
查看次数

标签 统计

binary ×1

lisp ×1

list ×1

recursion ×1