-
chevron_right
When CL:TENTH is not enough
Michał "phoe" Herda · Thursday, 20 August, 2020 - 14:21 edit
;;;; License: don't use this at home
(defmacro defnth (n)
(let ((var (gensym "LIST"))
(name (intern (substitute #\- #\Space (format nil "~:@(~:R~)" n)))))
`(defun ,name (,var) (nth (1- ,n) ,var))))
CL-USER> (defnth 1234)
ONE-THOUSAND-TWO-HUNDRED-THIRTY-FOURTH
CL-USER> (one-thousand-two-hundred-thirty-fourth (loop for i from 1 below 2000 collect i))
1234