fun append (x, y) { case x of `nil -> return y | `cons (h, t) -> return `cons (h, append (t, y)) esac } fun printList (x) { case x of `nil -> skip | `cons (h, t) -> write (h); printList (t) esac } n := read (); x := `cons (1, `cons (2, `nil)); y := `cons (3, `cons (4, `nil)); printList (x); printList (y); printList (append (x, y)); printList (append (y, x))