初学者问询:Maxima中实现R指定集合遍历输出的惯用写法
Maxima实现与指定R代码等价的功能
原R代码for (i in c(1:5,29,155)) message(i)的核心功能是:遍历包含1-5、29、155的序列,逐个输出每个元素。以下是几种Maxima的惯用实现方式:
方式一:构造序列后循环遍历
利用makelist生成连续序列,再通过concat合并零散元素,最后用for循环遍历输出:
for i in concat(makelist(j, j, 1, 5), [29, 155]) do print(i);
方式二:直接定义完整序列遍历
如果序列元素不多,直接写出完整序列更直观:
for i in [1, 2, 3, 4, 5, 29, 155] do print(i);
方式三:函数式风格(map函数)
Maxima支持函数式编程,用map可以将输出操作批量应用到序列的每个元素:
map(print, concat(makelist(j, j, 1, 5), [29, 155]));
上述三种方式执行后,都会依次输出:1、2、3、4、5、29、155,与原R代码的输出效果完全一致。
内容的提问来源于stack exchange,提问作者ivo Welch
相关产品推荐
相关产品推荐

