Dear Log,
% gs
GNU Ghostscript 7.07 (2003-05-17)
GS> /! { bind def } def
/alias { load dup type /arraytype eq {bind} if def }!
/x /exch alias
/Cons { [ 3 1 roll ] }!
/Car { 0 get }!
/Cdr { 1 get }!
/Nil /null alias
/for-backwards {
/fbBlock x def
/fbArray x def
fbArray length 1 sub -1 0 { fbArray x get fbBlock } for
}!
/array2list { Nil x { x Cons } for-backwards }!
GS> [] array2list ==
null
GS> [/a] array2list ==
[/a null]
GS> [/a /b /c /d /e /f] array2list ==
[/a [/b [/c [/d [/e [/f null]]]]]]