私は、このフォーム挿入配列Haskellの
[1.2,1.3,2.3]
の配列を返す機能を持っていると私はデータ作成:
data SpecielNumber = SP Float Float Float
をどのように生成する番号を返すfoo
機能からI SpecielNumber
?
このいけない仕事のようなもの:(
x=[1.2,1.3,2.3]
SP x
おかげ
私は、このフォーム挿入配列Haskellの
[1.2,1.3,2.3]
の配列を返す機能を持っていると私はデータ作成:
data SpecielNumber = SP Float Float Float
をどのように生成する番号を返すfoo
機能からI SpecielNumber
?
このいけない仕事のようなもの:(
x=[1.2,1.3,2.3]
SP x
おかげ
うまくいけば、これらはいくつかの手がかりを与えるだろう。あなたがより多くを読んでください...
> data SpecielNumber = SN Float Float Float deriving (Show)
> let makeSN [x,y,z] = SN x y z
> makeSN [1.2,1.3,2.3]
SN 1.2 1.3 2.3
まず、[1.2, 1.3, 2.3]
ではありません配列、そのリスト
次に、データ型SpecialNumber
にコンストラクタ名が必要です。だから、それはこのようなコンストラクタでリストを持たせることができます。
data SpecialNumber = SpecialNumber [Float]
最初SpecialNumber
は、型の名前です。 2番目はコンストラクタの名前です。これらは異なる名前空間です。あなたのような、さまざまなバリエーションを持つ型を定義されていない限り、2つの試合を持っているために、従来である:
data Either a b = Left a | Right b
Left
とRight
は、代替コンストラクタであり、タイプがEither
と呼ばれています。
答えの半分は命名規則のマイナーな面を議論します。おそらく、「単一のデータコンストラクタが型コンストラクタと同じものを持つことは一般的ですが、2つは常にコンテキストによって区別できます」と言うだけで十分でしょう。 – chepner
オハイオ州私はそれを..ありがとう – Alon