Primes by Trial Division - Pearl LISP
13 October 2016
Pearl LISP is essentially Common LISP, but has some provincial oddities around TAG forms and returning from a PROG or NIL block.
(defun divp (n plist) (mapc #'(lambda (p) (cond ((zerop (mod n p)) (return-from divp T)))) plist) (return-from divp nil)) (defun primes (n) (setq count 3) (setq primes (list 2)) (tagbody NEXT (cond ((< (length primes) n) (cond ((divp count primes) nil) (T (nconc primes (list count))))) (T (return-from primes primes))) (setq count (+ count 1)) (go NEXT)))