random包包含一个Uniform
用于均匀分布类型的类型类。这适用于以下类型:
data Coin = Heads | Tails
但是假设我想对一组具有非均匀分布的事物进行建模,例如通过添加硬币落在其一侧的可能性:
data Coin = Heads | Tails | Side
现在我仍然可以Uniform
在其实现中使用非均匀分布来实现,但这将与Uniform
.
我是否必须只使用一个独立的函数,或者是否有一些类型类用于“实际”分布的概念?
这个类型类在你可以有一些类型的 RPG 上下文中很有用
data Rarity = Common | Rare
data DropType = Club | Sword
其中获得 aRare
并且它是 a的机会Sword
可能低于其他值。但是从该类型的所有值的集合中提取一个值的概念仍然是相同的Rarity
,DropType
这就是为什么这对我来说看起来像是类型类的工作。