我试图看看是否可以根据子列表的嵌套深度从列表中收集信息。 但我意识到它应该只能由树完成。我在某种程度上学习了lisp中的编程二进制树,但它没有用,我将不得不尝试使用任意数量子节点的树。 我还发现lisp中有'sequence'功能,可以让我的工作更轻松
li:[g,f,t,h,[a,b,c],[[t,y,u]]]
/*after filtering out non-list elements li=[[a,b,c],[[t,y,u]]]*/
IN::map(lambda([x],apply(sequence,[x]),li)
OUT:: [a,b,c,[t,y,u]]
/*Again filtering out and repeating the process will leave me with [t,y,u].*/
通过这种方式,我可以收集不同标签的子列表。我在Maxima中看不到这个序列函数。有什么理由不包括在内吗?
答案 0 :(得分:2)
不确定要完成的任务。也许append
会产生预期的效果吗?
(%i1) li : [[a, b, c], [[t, y, u]]] $
(%i2) apply (append, li);
(%o2) [a, b, c, [t, y, u]]