The King's Museum

ソフトウェアエンジニアのブログ。

Gauche/Scheme を勉強する(三度目の正直)

過去二回挫折した Gauche/Scheme の勉強を再開したいと思う。

www.thekingsmuseum.info

www.thekingsmuseum.info

今までは少しストイックに勉強しようとしすぎて挫折してしまったきらいがあるので、ゆるく進めていこうと思う。

ついでに、Evernote にまとめたメモも載せていこう。

1章: Lisp と Scheme

  • LISP: 数式処理向けに開発
    • LISt Processing
  • 「リストで表現されたプログラム」を受け取って、それを解釈する
  • S 式
    • 基本要素、もしくは、S式を並べて括弧でくくったもの
      • 1 は数値ひとつの S 式
      • * は記号ひとつ S 式
      • (* 2 3) は記号*、数値2、数値3からなる S 式
  • プログラムとして S 式を次のように解釈
    • (<手続き> <引数> <引数>, …)
    • ⇒ もともとはデータ形式。プログラムとしては M 式があった
  • Scheme はシンプルな言語仕様で組み立てた
    • lambda 式は、「レキシカルな環境を保持した手続き」(クロージャ)へと評価される
    • 手続き呼び出しは継続を伴った引数付き goto である
  • Scheme プログラマは抽象構文木を扱える

2章: Gauche の特徴

  • 手軽にプログラムを書いて試せるスクリプト処理系
  • 実用規模のプログラムまで、機能、性能でスケールする
  • 他の言語のアプリケーションに埋め込み可
  • ネイティブ binding もある

3章: Gauche の設計思想や誕生の背景

  • Perl からの影響
    • 正規表現リテラル
    • 文字列補間
    • モジュールシステム
    • DBI/DBD
  • Common Lisp からの影響
    • キーワード引数
    • オブジェクトシステム
    • コンディション

プログラミングGauche

プログラミングGauche

(c) The King's Museum