2017-04-12 139 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'的函數上,而不是放在類型聲明上。 –