gpt4 book ai didi

list - lisp 中以特定方式显示列表的函数

转载 作者:太空宇宙 更新时间:2023-11-03 18:57:07 24 4
gpt4 key购买 nike

我需要在 lisp 中创建一个函数来显示如下列表:

(a b (c d) (e f g) h) ->
(a
b
(c
d)
(e
f
g)
h)

到目前为止,我设法制作了一个显示这样的列表的函数。

(defun print1-lista(l)
(princ pard)
(do ((lst l (cdr lst)))
((null (cdr lst)) (princ (car lst)) (princ par))
(princ (car lst))
(terpri)))

PRINT1-LISTA
> (print1-lista '(1 (1 2) 3 4))
{1
(1 2)
3
4}
}

最佳答案

在 Common Lisp 中,您可以通过多种方式自定义打印机。例如,变量 *print-case**print-margin-right* 将控制符号打印的大小写,以及右边距 pretty-print 。因此你可以这样做:

(let ((*print-case* :downcase)
(*print-right-margin* 2))
(pprint '(a b (c d) (e f g) h)))

得到这样的输出:

(a
b
(c
d)
(e
f
g)
h)

关于list - lisp 中以特定方式显示列表的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36558678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com