タグ

ブックマーク / sky.zero.ad.jp/~zaa54437 (5)

  • Rubyで関数プログラミング 【目次】

    このページでは、Rubyを使って、関数プログラミングを行ってみたいと思います。 Rubyは、よくいわれるように命令型言語の発展形たるオブジェクト指向型言語ですので、関数プログラミングを行うのに適した言語ではありません。しかし、全く関数プログラミングの特徴を伝えることができないわけではありません。それに必要ないくつかの機能を備えていると思います。従って、Rubyで関数プログラミングを行うことにより、関数プログラミングへのイントロダクションにしてみたいと思っています。 念の為言っておきますが、私はRubyをよく知りません。しかし、動的束縛のオブジェクト指向言語ということなので、その言語構成は、型システム以外はメジャーな多目的言語(C++,Object Pascal等)とそう変わらないと思います。というか、完全にそういう前提で話をします。 因みに、参考資料は、言語仕様に関するヘルプ、オライ

  • Rubyで関数プログラミング Part 6 【ファーストクラスの関数】

    関数型言語にとって、関数がファーストクラスの身分を持つというのは必須の要件だと言えるでしょう。 関数がファーストクラスであるというのはどういうことかということに関しては、基礎概念の所(first-class objectの項目)にもあるので見てもらえればいいと思いますが、ここでも簡単に言っておくと、データと同じように関数を取り扱うことができるということです。つまり、名前をつけられる(定義/宣言できる)ということだけではなく、関数の引数・結果値になることもでき、しかも、データ構造の中にオブジェクトとして組み込むこともできるということです。 関数型以外の言語はこれができるわけではありません。つまり、データと同じように、定義できたり、引数・結果値になったり、データ構造に組み込むことができるわけではありません。例えば、Rubyでは、メソッド定義はdefを使用する一方で、変数定義は代入演算子に拠

  • Clean Version 2.1 言語報告 【第8章】

    目次へ    最終更新 : 2004/4/30 第8章 ダイナミック 8.1 式をダイナミックに包む 8.2 ダイナミックパターン照合を使用してダイナミックを開包する 8.3 ダイナミックを使用した型安全な通信 8.4 実装のアーキテクチャ 8.5 ダイナミックに関する意味上の制限 ダイナミック(Dynamic)は、CLEANの新しい実験的な特徴である。この概念を理解するのは容易だが、その実装はそう簡単ではない(VervoortとPlasmeijer,2002参照)。従って、全部を実装し、システムが完全に動作するには幾分時間がかかるだろう。待っていて欲しい。 "ダイナミック"で何ができるのだろうか?容易で型安全な方法で、(異なった)CLEANアプリケーション間の式を保存し、交換することができる。式は、(未評価!)データと(未評価!)関数適用を持つことができる。ここのその使用例を

  • Cleanで関数プログラミング 【第1部目次】

    First Uploaded : March 20, 2002 Last Updated : March 14, 2004

  • Cleanで関数プログラミング 【第1部第4章】

    目次へ    最終更新 : 2003/7/21 第4章 型の力 4.1 型クラス 4.2 存在型 4.3 一意型 4.4 演習 訳者注:一意性の多相性(4.3.7)の所で、記号が正しく印字されない場合(Adobe Acrobat Reader 5.05で閲覧)がありましたので、私なりに補充しました(一応確認しました)。従って、そこに関しては正確でないかもしれないのでご了承下さい。 CLEANは、強く型付けされた言語である。これは、言語内のあらゆる式が型付けされており、プログラム実行前にコンパイラが型の正当性を検査できるということを意味している。間違って型付けされたプログラムは認められない。この型システムのおかげで、多くのエラーをコンパイル時に発見し報告することができる。ソフトウェア開発プロセスの早期の段階でプログラミングエラーを発見することは重要である。後でエラーを直すことは、遥

  • 1