Lisp で書いた素数を表示するプログラム
(defun pn ()
(setq i 2)
(loop
(if (= i 10000) (return))
(setq f 0)
(setq j 2)
(block loop2
(loop
(if (= i j) (return-from loop2))
(if (= (rem i j) 0) (setq f 1))
(setq j (+ j 1))
)
)
(if (= f 0) (print i))
(setq i (+ i 1))
)
)
初めて Lisp で書いてみました。Lisp らしいプログラムになっているのかそれはよく分かりませんが。CLisp を使ったのですが while 文が使えないようです。
何か新しいプログラミング言語を習得してみようと書いたものですが while 文が使えないと厳しいものがあります。
結局いまは Java でも始めてみようかと思っているところです。
フラグをセットしたらループから脱出させたほうが計算が速いのですがそのままにしてあります(無駄な計算をしています)。if 文の後ろに2つ文を書く方法がわからなかったもので。。