Hatena::Grouphaskell

haskell の学習 by codo RSSフィード


『ふつうのHaskellプログラミング』をテキストに、Haskellを学んでいます。

2007-05-21

関数の型 08:16 関数の型 - haskell の学習 by codo を含むブックマーク はてなブックマーク - 関数の型 - haskell の学習 by codo

変数の型ならわかるけれども、関数の型ってなんだろう?

関数にも種類があるのかな?

とおもって読み進んでみると、なんのことはない、どうやら関数の仮引数と返す値の型のようでした。

実は、Haskellには型推論(type inference)という機能があり、引数や返り値の型宣言を省略しても、言語処理系がその型を推論して補ってくれるのです。

(56ページ)とありますが、

型を宣言しておけば意図した通りに型がチェックされていることが確認できますし、ソースコードを読む人にとっての情報が増え、ソースコードが読みやすくなります。

(61ページ)ともあります。

書式は、

関数名 :: 仮引数の型 -> 返り値の型

第1章の冒頭にこうありました。

Haskell関数とは、引数と返り値の対応関係を記述したものです。

また、関数は常に値を返します。つまり、返り値がvoidであるような関数は存在しません。

ということは、どんな関数でもこの書式で定義できるはずです。

引数がいくつもある場合は、繰り返して書けばよいようです。たとえば2つある場合は、

関数名 :: 第1仮引数の型 -> 第2仮引数の型 -> 返り値の型

返り値が2つ以上の場合はどうするのでしょう。この書式だと値は一つしか返せませんよね。もしかしたら配列(リストっていうのかな?)で返せばいいのかな?

CamiCami2012/01/06 12:23I'm out of league here. Too much brain power on dspilay!

wdfwjbasbwdfwjbasb2012/01/06 19:06Mc4Egc <a href="http://yhxozsgqumiv.com/">yhxozsgqumiv</a>

godmkkiypazgodmkkiypaz2012/01/09 23:38Uqzw8k <a href="http://ohmypzhyphqs.com/">ohmypzhyphqs</a>

prgnplsmbobprgnplsmbob2012/01/11 04:36mnBLIr , [url=http://bljmfmfrvxfu.com/]bljmfmfrvxfu[/url], [link=http://cmrclzzegoxg.com/]cmrclzzegoxg[/link], http://ucrrirxzzutz.com/

トラックバック - http://haskell.g.hatena.ne.jp/codo/20070521