2025年1月13日 | ノート給油 |
2025年1月4日 | ザ・シチズン時刻合わせ |
2025年1月3日 | コンクエストV.H.P. 時刻合わせ |
2024年12月27日 | MacBook Airで外付けSSDにmacOSをインストール |
2024年12月7日 | 太陽電池パネル交換 |
2024年11月30日 | 鉛蓄電池交換 |
2024年11月29日 | MacBook Air M3購入 |
2024年11月22日 | セゾンゴールドアメックスカードの変化 |
2024年11月20日 | DS-C480W購入 |
2024年11月18日 | EOS R7ファームウエアアップデート |
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$
となる。 ちょっと試してみただけだが、なかなかいい感じ。