2024年11月23日 | ノート定期点検 |
2024年1月22日 | セゾンゴールドアメックスカードの変化 |
2024年11月20日 | DS-C480W購入 |
2024年11月18日 | EOS R7ファームウエアアップデート |
2024年11月17日 | PX-M730Fのシアンインク交換 |
2024年10月19日 | 腕時計のファームウエア |
2024年10月5日 | RF-S 10-18mm F4.5-6.3 IS STM購入 |
2024年10月3日 | 三菱UFJニコスカード到着 |
2024年9月28日 | 三菱UFJニコスカード申込 |
2024年9月23日 | 第10世代iPad購入 |
http://practical-scheme.net/gauche/index-j.html
http://www.kahua.org/cgi-bin/kahua.cgi/kahua-web/
Lispの方言。 厳選された機能を注意深く実装する、という方針らしい。 「末尾再帰はgotoループにする」ことが言語仕様として定められているとか、 結構面白そう。 実装もいろいろあるらしい。 とりあえずgaucheあたりで遊んでみようか。
エラトステネスのふるいで素数を求めるプログラム。 実行系はGauche 0.8.7。 もっとエレガントな方法があるんだろうなあ。
仕事でQ&Aをhtml化することがあるのだが、 いちいち目次を作ったりするのが面倒なので自動化できないか挑戦。 元データはテキストファイルだが、 これを質問、回答、更新日を1セットとしたS式に書き下す。
みたいな感じで。
まずはひとつの質問リストを渡されたらhtmlのli要素として組み立てる手続きを作る。
text.html-lite はGaucheのライブラリモジュールで、 標準で用意されている。 基本的なアルゴリズムは
#`"\#,(car x)"
は文字列の補間を使っている。
次は質問をまとめたリストを受け取って、 ulでくくった複数のliに組み立てる手続き。 mapでリストの要素をばらして、 最初に作ったmakeqlineに渡すだけ。
大本の質問リストを受け取って、 できあがったリストを出力するには、
かな。
(map car contents)
で、質問部分だけを抜き出している。
text.treeもGauche標準のライブラリモジュール。
コマンドラインから実行して、
質問をまとめた別ファイルを読み込んで使うなら、
まとめると
これに最初のデータを喰わせると、
tom-a@sun$ ./qa.scm q1.scm <ul class="qa-ul"><li class="qa-li"><a href="#Q.1"><span class="t-q">Q.1</span >質問その1</a ></li ><li class="qa-li"><a href="#Q.2"><span class="t-q">Q.2</span >質問その2</a ></li ><li class="qa-li"><a href="#Q.3"><span class="t-q">Q.3</span >質問その3</a ></li ></ul > tom-a@sun$
となる。 ちょっと試してみただけだが、なかなかいい感じ。