2017-04-12 45 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

然后它是较少多态性。也许他想要'DataType a = DataConstr a'。也就是说,约束条件应该放在使用'DataType'的函数上,而不是放在类型声明上。 –