(defun flotri (n) (let* ((last (trunc (* n (+ n 1)) 2)) (colw (mapcar [chain tostring length] (range (- last n -1) last))) (x 0)) (each ((r (range* 0 n))) (each ((c (range 0 r))) (format t " ~*a" [colw c] (inc x))) (put-line)))) (defun usage (msg) (put-line `error: @msg`) (put-line `usage:\n@(ldiff *full-args* *args*) `) (exit 1)) (tree-case *args* ((num blah . etc) (usage "too many arguments")) ((num) (flotri (int-str num))) (() (usage "need an argument")))