flatten := proc(x) `if`(type(x,'list'),seq(procname(i),i = x),x); end proc: L := [[1], 2, [[3,4], 5], [[[]]], [[[6]]], 7, 8, []]: [flatten(L)];