超!Gauche入門

2008年5月23日(金)
吉田 裕美

Gaucheの使い方

 Gaucheでプログラムを実行する場合は、大きく3つの方法があります。

 1つ目は、プログラムを書いたファイルを作り、Cygwin Bash Shellやshell上で「goshプログラムファイル」とタイプし実行する方法です。

 2つ目は、Cygwin Bash Shellやshell上でgoshとだけ入力し、gosh>というプロンプトが表示されたら、そこにプログラムを直接入力しながら実行する方法です。エディタで作ったプログラムをコピー・ペーストしながら、プログラミングを進めていくこともできます。

 3つ目は、emacs(Meadow)上でC-c S(Ctrl+cの後にSを入力)でgoshを走らせ、別のウィンドウにあるプログラムをC-x C-e(Ctrl+xの後にCtrl+e)で与えながら実行する方法です。

 後に説明した方法ほど、能率良く開発が行えます。

Lispのデータ構造S式

 Gauche(Lisp/Scheme)が扱うデータは、数値や文字列、ベクターやハッシュなどJavaやPerlなどと同じようなデータ以外に、シンボルやS式というものがあります。

 シンボルとは変数名や関数名のように何か実体につけられた名前です。ただし、実体の無い単なる名前としても使います。

 S式とは前ページのプログラムで見たように()内に要素を並べたもので、リストとも呼ばれます。要素は数値や文字列のようなリテラル、シンボル以外にS式も書けます。したがって、S式は入れ子になった構造を表現できるので、いろいろなデータ構造を表すことが可能です。

 実はGaucheが扱うデータはプログラムを含めすべてS式です。S式の一部分としてリテラルやシンボルも含まれます。

 リスト4は、リスト3のHTMLと同等の内容をS式で表しています。HTMLでは、

Gauche Web Page

のように開始タグ、内容、終了タグの構造をしていますが、単純なHTML要素の場合、開始タグと終了タグの違いは/だけなので、ここでは (タグ名 内容...)というS式で表すことにします。内容が数値や文字列の場合は、Gaucheの数値、文字列で書きます。

 また、要素内部に

要素や、

要素が入れ子になっている構造は(タグ名 内容...)の内容部分が入れ子になることで表現しています。

 それでは次に、このS式を与えると対応するHTMLを出力するプログラムを作ることにします。
CADのベンチャー企業を経て、独立し有限会社EY-Officeを設立。Java、Ruby、PerlなどでWebアプリを中心に開発を行ってきたが、現在は、教育に注力し「問題解決型の教育」に奮闘中。「Gauche-Trac(http://www.ey-office.com/gauche)」に今回の記事のサポートページを作りましたのでご活用下さい。HP:http://www.ey-office.com。Blog:http://d.hatena.ne.jp/yuum3

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています