Lispで色々問題解いてみよう!
この記事に載っている問題をcommon lispで解いてみるプロジェクト。
なんらかのカウントアップメッセージを1から100まで出すけど、3のときだけアホになる!(例:1万円!2万円!しゃ〜ん万円!とか)
やり方はいくらでもありそうだけど
loopマクロの使い方を覚え直したかったのでloopで。
3が関係するとみゃ〜んえ〜んと頭悪くなる仕様。
(loop for i from 1 to 100 by 1 if (or (= 0 (mod i 3)) (cl-ppcre:scan "3" (write-to-string i))) do (format t "~aみゃ〜んえ〜ん~%" i) else do (format t "~a万円~%" i) )
メールアドレスを入れるとあらかじめ用意されたテンプレートファイルにそのメアドを埋め込んだ上でメール送信。
順番は関係なく7番が気になったので先に解いてみる。
Common Lispだと面倒臭そうだなぁと思って
Clikiで検索してみるとcl-smtpなる物を発見。
使ってみる
(cl-smtp:send-email "ホスト名" "from" "to" "subject" "message" :port ポート :authentication '(:login "ユーザー名" "パスワード"))
コレだけでメールを送る事ができる。
便利。
7の問題を特にはあとは適当にテンプレートメッセージを作ればおk。