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

更新情報

2018年3月29日 PROMASTER停止
2018年3月18日 給湯器工事
2018年3月15日 R
2018年3月12日 給湯器見積もり依頼
2018年3月8日 10.5インチiPad Pro
2018年2月20日 F-84W-1時刻調整
2018年1月30日 カード解約
2018年1月17日 リクルートカード到着
2017年12月31日 Deco M5導入
2017年12月30日 部品寄せ集め6号のグラフィックボードを交換
モッピー!お金がたまるポイントサイト
日々の生活にhappyをプラスする|ハピタス

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$

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