Haskellは多相型システムを採用している。これは本質的には、以前それとなく言及しておいた型変数というものを持つことができるということだ。たとえば、
tailのような関数は、リストの要素が何であってもかまわないことに注意してほしい。Prelude> tail [5,6,7,8,9]
[6,7,8,9]
Prelude> tail "hello"
"ello"
Prelude> tail ["the","man","is","happy"]
["man","is","happy"]このようなことが可能なのは、
tail が多相型 ([α] → [α]) を持つからである。つまり、tail はあらゆるリストを引数に取ることができ、同じ型のリストを返す。同じ分析により、
fst の型も説明できる。Prelude> :t fst
forall a b . (a,b) -> aここで、GHCi は型の値の完全修飾名を明らかにしている。つまり、すべての型
a と b について、 fst は (a, b) から a への関数であることを示している。演習
演習 4.2 以下の式を自分で計算し、もしそれが型を持つならその型を確かめよ。また、式が型エラーであるかどうか注意せよ。
1.
2.
3.
4.
5.
snd2.
head3.
null4.
head . tail5.
head . head前ページ「4.1 単純型」
次ページ「4.3 型クラス」
1 はじめに
2 スタートガイド
4 型の基礎
5 Basic Input/Output
6 Modules
7 Advanced Features
8 Advanced Types
9 Monads
10 Advanced Techniques
A Brief Complexity Theory
B Recursion and Induction
C Solutions To Exercises
これは、Haskell (ハスケル) のチュートリアル "Yet Another Haskell Tutorial" を日本語に翻訳したものです。
オリジナルのドキュメントは、
http://www.cs.utah.edu/~hal/docs/daume02yaht.pdf
などから入手できます。
日本語訳に関するご指摘は、コメントとしてお寄せください。
オリジナルのドキュメントは、
http://www.cs.utah.edu/~hal/docs/daume02yaht.pdf
などから入手できます。
日本語訳に関するご指摘は、コメントとしてお寄せください。
【Yet Another Haskell Tutorialの最新記事】

