Random发生器如何在elm中工作?

时间:2017-12-11 01:55:01

标签: random elm

我无法理解随机生成器如何工作。

enter image description here 在以下示例中,我尝试在点击时滚动两个骰子, https://ellie-app.com/d9rXQHpfJa1/1

但是

Function generate is expecting the 2nd argument to be:

Random.Generator ( Int, Int )
But it is:

( Random.Generator Int, Random.Generator Int )

1 个答案:

答案 0 :(得分:3)

错误消息为您提供了一个强烈暗示,即您试图传递的参数不符合预期。 Elm进行了很多类型推断,因为NewFace (Int, Int)是一个构造函数,它接受两个整数的元组,这就是传递给generate的第二个参数所期望的。

如果您访问Random package documentation,您将看到一个带有两个生成器的函数,并为您提供一个使用元组中前两个生成器的生成器。它被称为Random.pair,如果您在代码中使用它,它将如下所示:

( model, Random.generate NewFace (Random.pair (Random.int 1 6) (Random.int 1 6 )))