ようこそ。睡眠不足なプログラマのチラ裏です。

Haskell

Haskellのお勉強 その7

参照透明性参照透明性とは、計算機言語の概念の一種である。コンテキストに左右されることなく、 式の値はその構成要素である変数や関数によってのみ定まることを参照透明性*1があるという。 具体的には、変数の値は最初に定義した値と常に同じであり、 関数…

Haskellのお勉強 その8

基本的な値と、その周辺の関数真偽値Haskellno真偽値はTrueかFalseのみ。その型はBool型。 関連関数として、not関数、(&&)関数、(||)関数などがある。 Prelude> not True False Prelude> (&&) True False False Prelude> not True && False False Prelude> F…

Haskellのお勉強 その5

モジュールとimport宣言Haskellプログラムはモジュールという単位に分割されている。 モジュールは関数や変数や型の集まりであり、 Haskellでは関数や変数は必ずなんらかのモジュールに属している。 他のモジュールで定義されている関数などを使いたい場合は…

Haskellのお勉強 その6

遅延評価Haskellの大きな特徴として、遅延評価を基本原則としているというのがある。 遅延評価とは、評価しなければならない値が存在するとき、実際の計算を値が必要になるまで行わないことを言う。 つまり、遅延評価はトヨタ式の、必要なときに必要なものを…

Haskellのお勉強 その4

concat関数 {-concat関数の型-} concat :: [[a]] -> [a] main = do cs <- getContents putStr $ expand cs expand :: String -> String expand cs = concat $ map expandTab cs expandTab :: Char -> String expandTab c = if c == '\t' then " " else [c] c…

Haskellのお勉強 その2

静的型チェックHaskellにも、Javaや.NETと同じように静的な型チェック(static type checking)がある。 「静的な」というのは、「コンパイル時に」と同じ意味であるから、 Haskellの場合もコンパイル時に、処理系が型のチェックを行ってくれる。 このようにコ…

Haskellのお勉強 その3

高階関数(higher order function)高階関数とは、プログラミング言語において、関数を引数としたり、 あるいは関数を戻り値とするような関数のことである。 関数型プログラミング言語Haskellにおいては、まず「関数」という値があり、 関数名はそれに束縛され…

Haskellのお勉強 その1

「ふつける」やら「ふつハス」の愛称で親しまれている「ふつうのHaskellプログラミング」を買いました。 というわけで、関数型プログラミングHaskellのお勉強をのんびりはじめます。 はじめてのHaskellはじめての言語の勉強と言えば、 まずはお約束という感…