;|
(abc '(1 2 3 4 5 6 7 8 9 10 11) 3)→((1 2 3) (4 5 6) (7 8 9) (10 11 ""))
(abc '((1 2) (2 3) (3 4) (4 5) (5 6) (6 7) (7 8) (8 9) (9 10) (10 11 12) (11 12 13)) 3)
→
(((1 2) (2 3) (3 4)) ((4 5) (5 6) (6 7)) ((7 8) (8 9) (9 10)) ((10 11 12) (11 12 13) ""))
|;
(defun abc (lst n / bb tmp a)
(setq bb '() tmp '())
(while (setq a (car lst))
(setq lst (cdr lst))
(if (< (length tmp) n)
(setq tmp (cons a tmp))
(setq bb (cons (reverse tmp) bb)
tmp (list a)
)
)
)
(if tmp
(progn
(while (< (length tmp) n) (setq tmp (cons "" tmp)))
(setq bb (cons (reverse tmp) bb))
)
)
(reverse bb)
)
wharan 发表于 2023-7-5 15:27
这个程序,结果返回有点问题。
(LHSTTOLST '(1 2 3 4 5 6 7 8 9 10 11) 5)返回((1 2 3 4 5) (6 7 8 9...
改了一下,再试试 liuhe 发表于 2023-7-5 13:49
看着都差不多,更新了一下
没看到你更新后的代码
用list:split 函数 拆分的子表,当个数不足时,最后一个子表的元素个数与前面的不等长。
可以使用 list:fill 补足
vitalgg 发表于 2023-7-6 21:39
用list:split 函数 拆分的子表,当个数不足时,最后一个子表的元素个数与前面的不等长。
可以使用 l ...
看来还是很灵活的 yoyoho 发表于 2023-7-5 21:12
(defun list:split (lst x / lst2)
(setq lst3 lst)
(repeat (- x (rem (length lst) x))
这思路真牛!我想象不到!
页:
1
[2]