CLでpangram
HackerNews見てたら有名なパングラムのアレの実写映像が。
The quick brown fox ... | Typophile
…か、かわいい!
折角なのでPanprogram(?)をCLで書いてみた。
文字列とか適当な名前のシンボルを使っちゃうとつまらないので、CLパッケージからexportされてるシンボルのみカウントする、という事にします。
(defvar n (read)) (check-type n number) (if (zerop n) (write n) (let* ((c (expt n 1/3)) (w (* c (cis (* pi 2/3))))) (format t "~A~%~A~%~A" c w (conjugate w)))) (quit)
実数を入力すると立方根を表示するプログラム。
Jを含む短いシンボルが少ないので、無理矢理conjugateを使おうとした結果こんな感じに。
虚数を入力されると答えを間違えるのに(check-type n number)としてる所がアレです。
他言語で予約語パングラムとか絶対やってる人いるよなーと思ったのだけどググり方が悪いのかなかなか見つからない。
追記
調べてみたら元の映像は結構前にYouTubeに上がってたみたい。
QUIT
CLパッケージじゃなかった
[1]> (find-symbol "QUIT" :CL) NIL ; NIL [2]> (find-symbol "QUIT" :CL-USER) QUIT ; :INHERITED [3]> (find-symbol "QUIT" :EXT) QUIT ; :EXTERNAL
実装ごとに用意されてるんだな。