gpt4 book ai didi

maxima - 如何使用 printf 从可变大小的列表中输出文本?

转载 作者:行者123 更新时间:2023-12-01 11:17:41 25 4
gpt4 key购买 nike

我正在尝试使用 printf 自动执行一些输出但我正在努力寻找一种方法将参数列表 expr_1, ..., expr_n in

传递给它
printf (dest, string, expr_1, ..., expr_n)

我想到了使用像 Javascript 的 spread 这样的东西 operator但我什至不确定我是否需要它。

例如,假设我有一个要输出的字符串列表

a:["foo","bar","foobar"];

一串适当的格式描述符,比方说

s: "~a ~a ~a ~%";

和一个输出流,比如说os。我怎样才能使用这些东西调用 printf 以使结果与写入的结果相同

printf(os,s,a[1],a[2],a[3]);

然后我可以将其概括为输出可变大小的列表。

有什么建议吗?

谢谢。

编辑:

我刚刚了解了apply,并且使用我在 OP 中提出的条件,以下似乎非常有效:

apply(printf,append([os,s],a));

最佳答案

Maxima printf 实现了 Common Lisp FORMAT 中的大部分或全部格式化操作符,这些操作符非常广泛;参见:http://www.lispworks.com/documentation/HyperSpec/Body/22_c.htm另见 ? Maxima 中的 printf 以获取格式化运算符的缩写列表。

特别是对于列表,您可以执行以下操作:

printf (os, "my list: ~{~a~^, ~}~%", a);

获取由,分隔的a的元素。这里"~{...~}"告诉printf期待一个列表,~a是如何格式化每个元素,~^表示省略最后一个元素之后的元素间内容,, 表示将其放在元素之间。当然 , 可以是任何东西。

对此有很多变化;如果这不是您要查找的内容,也许我可以帮助您找到它。

关于maxima - 如何使用 printf 从可变大小的列表中输出文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48518966/

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