「オフラインリアルタイムどう書く」をLispで

  • 7
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

「オフラインリアルタイムどう書く」とは

「オフラインリアルタイムどう書く」は、月1くらいで横浜で開催されている勉強会です。主催者の鍋谷さんが準備した「お題」を制限時間1時間でネットの力を借りずに自力で解く、という会です。「お題」は定番のポーカーTick-Tack-Toeから、ボンバーマンの爆風の広がりをビット演算で解きましょうといったユニークなものまで、おもしろく、ついついハマってしまうものばかりです(今までのお題や解答例を見るには、こちらから辿っていくと便利です)。

「一人オフラインゆるゆるタイムどう書く」

Lisp星人から指令が来たので、Common Lispの勉強として「オフラインリアルタイムどう書く」を解いていくことにしました。

とりあえずの自分ルールは:

  • マクロを使用しない(defmacro等を用いてマクロを定義しない)。
  • 最適化のための宣言は使用しない。
  • quicklispは使用してもよいが、基礎的なライブラリに限る(alexandria, split-sequence, cl-ppcreなど)。
  • なるべくわかりやすいコードを心がける(1年後の自分が理解できるくらい)。
  • 解答はgistで晒す。
  • 制限時間1時間は努力目標。
  • まずはオフラインで解答にたどり着く(ただし、下手の考え休むに似たり状態になったら、とっとと他の方の解答を参考にするか、先送りする)。
  • 自力で解答にたどり着いたらネット解禁。
  • 他の方の解答を読み、参考になる部分を取り入れ、解答を書きなおす(余力があれば)。

未解答のお題

  4. フカシギの通行止め
  9. 数を作る
 13. 増やす減らす二倍する
 16. L被覆             境界線分

問題を解き次第、下にリンクを追加していく予定。ゆるゆる解いてくつもりです。

お題と参考問題と解答

「解答:他の言語」から、他の方の解答を見ることができます。参考になります。

重大な規律違反、Lisp的に不適切なコード、間違いやバグ、より良い方法などございましたら、コメントいただけると嬉しいです(各問題に関してはgist、全体に関してはqiitaの方で、コメントいただければ、とても助かります)。