Schemeで遊ぶ

関数型プログラミング言語”Scheme”で遊んでます。

SchemeはLispの流れを汲んだプログラミング言語。
方々を調べ回ったところによると下記のような特徴を持った言語とのこと。

  • 複数のプログラミングパラダイムをサポート
    手続き型、オブジェクト指向、関数型の3つのパラダイムをサポートしている。

  • レキシカルスコープ(静的スコープ)
    レキシカルスコープを持つ言語。
    最近の言語は大抵レキシカルスコープを持っているので、取り立てて意識する必要はないと思うけれど。
    Emacs Lispや初期のLispがダイナミックスコープで実装されていたようなので、そちらと混同しないように、ということに注意。
  • プログラム内の全てのプロシージャが第一級プロシージャ
    式を関数の引数や戻り値、変数に格納する値として取り扱える。

  • シンプルな構文規則
    閉じ括弧で式を表す、前置記法で演算子を作用させる。ほぼこれだけ。
    しかし、とにかく括弧が多い。。
  • 再帰、再帰、再帰!
    繰り返し処理において再帰を多用する(らしい)。
  • 自動プログラミングやインタプリタ実装、言語処理の実装なんかに向いてる
  • Schemeを通じて特に身につけたいのは再帰処理の実装センスと関数型プログラミングのエッセンスを吸収すること。
    Processingで再帰使って絵を描いたりしたこともあったけど、どうにも再帰使った独自の実装にこぎ着けるところまでは行かなかった。
    というか自分で考えた再帰処理を実装してみると、大抵ヒープを食いつぶしてエラーを吐くという残念な結果にしかならないというトラウマが。。
    再帰は読むのも苦手なので、勘所をつかんでおきたい。

    コメントを残す

    メールアドレスが公開されることはありません。