* * *
* *"> *
* * *
Akihito Nagata's Page
|
|
Memo
About Haskell(A Short Introduction to Haskell) の和訳です。興味ある人は是非読んでみて下さい。
とりとめなく、忘れがちなことのメモ
Java reflection
Java でクラスに指定されたメソッドがあるかどうかを調べたりできる仕組み。調べるだけでなく呼出しなどもできる。
Java Generics
C++のテンプレートみたいなもの。Vector strings = new Vector(); という感じで。多相型。これができたらSoft Typingがもっと楽しくできたのに。 Java2 SDK 1.5でこの機能が入る?
call-by-value
関数の引数に値が渡される。schemeでもMLでもデフォルトでこれ。
call-by-name
引数と同じ変数名のところを置き換える。同じ計算が何回も行われる可能性がある。
call-by-need
その値が本当に必要になったときに計算する。lambda計算ではこれが前提?1度計算した式を2回計算しないように値を覚えておく。
Haskell
関数型プログラミング言語のひとつ。遅延評価(call-by-need)が特徴
lambda計算
全ての式と値を"λ.x e"の形で表す。プログラミング言語に数学的な意味を与えようとしたが、実用化には微妙に至らなかった。関数型言語の基礎となった。
linear type
線形型。オブジェクトの使用回数を調べて、1度しか使わないとわかるオブジェクトにつけられる型。これを利用するとインライン展開や破壊的updateができる。
ML
Meta language。プログラミング言語のひとつ。静的に強く型付けされる。使えるようになるにはまず型の理解が必要となる。
parametric polymorphism
関数の型に型変数を許したポリモーフィズム。MLの"function x -> x"など。
poly morphism
多相性。同じ(名前の)関数で場合によっていろんなことができる。see also parametric polymorphism,ad hoc polymorphism
soft typing
schemeなど、動的に型がつけられる(オブジェクトが型情報を持つ)ような言語に型がつけられるようにできた型システム。int または boolean、というような型が特徴。
subtyping
部分型。int < double など。型に包含関係にあるような型システム。関数適用の部分が逆になってて難しい。
関数型言語
ML,Haskell,Schemeなどのプログラミング言語に代表されるような言語の分類。全ての部分式が値を持つのが特徴。
|
前のページはこちら