The following complements @Svante's answer, by taking into account nested lists.
(defun nested-list-to-ps (lst)
(if (listp lst)
`(ps:array ,@(mapcar #'nested-list-to-ps lst))
lst))
(defun example () '(1 (2 3) (4 (5 6))))
(ps:ps (ps:lisp (nested-list-to-ps (example))))
; => "[1, [2, 3], [4, [5, 6]]];"