2017-04-12 11 views
0

ランダムジェネレータデータ型でデータ型をパラメータ化するにはどうすればよいですか? 私はこの試みた:ランダムジェネレータデータ型でパラメータ化されたHaskellデータ型

data DataType g = Data (RandomGen g) 

をしかし、私は

Predicate `RandomGen g' used as a type 
In the type `RandomGen g' 
In the definition of data constructor `Data' 
In the data declaration for `DataType' 
Failed, modules loaded: GameState. 

答えて

3

RandomGenを取得型クラスで、入力しないで。あなたが合う場合はStdGenを使用してください。そしてそれは何かによってパラメータ化されていないので、ちょうどdata DataType = Data StdGenが必要です。

+0

それから、それはより少ない多形性である。おそらく、彼は 'data DataType a = DataConstr a'を望んでいるでしょう。つまり、型宣言ではなく、 'DataType'を使って関数に制約を置く必要があります。 –

関連する問題