последовательность отсутствует в Maxima

Я пытался понять, могу ли я собрать информацию из списка на основе глубины вложенности подсписок. Но я понял, что это должно выполняться только деревом. В какой-то степени я научился программировать двоичное дерево на 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. Есть ли какая-то определенная причина, по которой он не был включен?


person Sejwal    schedule 21.04.2014    source источник


Ответы (1)


Не уверен, чего хочешь добиться. Может быть, append даст желаемый эффект?

(%i1) li : [[a, b, c], [[t, y, u]]] $
(%i2) apply (append, li);
(%o2)             [a, b, c, [t, y, u]]
person Robert Dodier    schedule 21.04.2014