2011-10-27 15 views

答えて

37

およびデータタイプはまったく同じ概念を指します。

Haskellのキーワードtypedataは、しかし、異なっている:typeはちょうど型シノニムを行いながらdataあなたは、新しい代数的データ型を導入することができます。

詳しくは、Haskell wikiを参照してください。

+1

を絵を完成させるために、あまりにもnewtype' 'あり「newtype T a = T a」と「data T a = T a」の違いを把握することは困難ですが、かなり重要です –

+0

例ではnewtypeを見ましたが、あなたの例の違いは何ですか? – user997112

+1

@ user997112 'newtype'はシノニムの一種を作成するのに使われるコンパイル時の型ですが、別の型として扱われます。' data'の中にラップすることはできますが、実行時にオーバーヘッドが追加されます。実行時のオーバーヘッドなしで、型の差別化が必要であることをコンパイラに明示します。長い話:http://www.haskell.org/haskellwiki/Newtype – Ptival

1

これらの用語は混在していることがありますが、通常、「データ型」はdataキーワードを使用して導入された型を指します。この型にはパターンマッチングできるコンストラクタがあります。これらはまた、代数的データ型と呼ばれている」。

ただ、 『タイプ』はそうでnewtype、関数型を使用して作成したもの種類を含む、より一般的な用語である。

+0

それでは、独自のタイプの整数などを入力しますか? – user997112

関連する問題