トップ > 興味のあること > コンピュータ > ソフトウェア

更新情報

2024年3月21日 オーバーホール
2024年3月19日 分針
2024年3月17日 グランドセイコー
2024年2月12日 Bluetoothマウス切断
2024年2月11日 ANKER SoundCore
2024年2月10日 ノート給油
2024年2月9日 防水温湿度計
2024年2月8日 ハクキンカイロ発熱量
2024年1月28日 出勤セット
202年1月7日 バイク保険更新

Scheme

http://practical-scheme.net/gauche/index-j.html
http://www.kahua.org/cgi-bin/kahua.cgi/kahua-web/

2004年7月29日

Lispの方言。 厳選された機能を注意深く実装する、という方針らしい。 「末尾再帰はgotoループにする」ことが言語仕様として定められているとか、 結構面白そう。 実装もいろいろあるらしい。 とりあえずgaucheあたりで遊んでみようか。

2006年11月22日

エラトステネスのふるいで素数を求めるプログラム。 実行系はGauche 0.8.7。 もっとエレガントな方法があるんだろうなあ。

2008年6月5日

仕事でQ&Aをhtml化することがあるのだが、 いちいち目次を作ったりするのが面倒なので自動化できないか挑戦。 元データはテキストファイルだが、 これを質問、回答、更新日を1セットとしたS式に書き下す。

みたいな感じで。

まずはひとつの質問リストを渡されたらhtmlのli要素として組み立てる手続きを作る。

text.html-lite はGaucheのライブラリモジュールで、 標準で用意されている。 基本的なアルゴリズムは

  1. 渡されたリストの先頭要素(質問番号)にspanをマークして、
  2. 質問全体をaエレメントでくくって、
  3. さらにliエレメントでくくる。

#`"\#,(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$

となる。 ちょっと試してみただけだが、なかなかいい感じ。