random - 在 Elm 中生成随机数所需的最少代码是多少?

标签 random elm

我只想看一个随机数。所以这里是 an example straight out of the docs对于随机库。我希望 Random.generate 接受生成器和种子并返回包含随机值和新种子的元组,如:

generate : Generator a -> Seed -> (a, Seed)

-- Main.elm

import Random

seed0 = Random.initialSeed 31415
randomNumber = Random.generate (Random.int 0 10) seed0
main = 
  -- print result of randomNumber here

编译器错误显示两种类型不匹配:

-- TYPE MISMATCH ---------------------------------------------------- -----------

The 2nd argument to function `generate` is causing a mismatch.

5|        Random.generate (Random.int 0 10) seed0
                                        ^^^^^
Function `generate` is expecting the 2nd argument to be:

    Random.Generator a

But it is:

    Random.Seed


The 1st argument to function `generate` is causing a mismatch.

5|        Random.generate (Random.int 0 10) seed0
                       ^^^^^^^^^^^^^^^
Function `generate` is expecting the 1st argument to be:

    a -> b

But it is:

    Random.Generator Int

我在这里错过了什么?

最佳答案

您引用的文档版本是Core 1.0.0,它是旧的。当前版本的核心是 4.0.5。 (docs for Random here)

您要查找的带有签名的函数现在命名为 step:

step : Generator a -> Seed -> (a, Seed)

所以你重构的代码看起来像这样:

import Html exposing (text)
import Random

seed0 = Random.initialSeed 31415
(randomNumber, nextSeed) = Random.step (Random.int 0 10) seed0

main =
  text <| toString randomNumber

关于random - 在 Elm 中生成随机数所需的最少代码是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40206791/

相关文章:

delphi - 无法在 Delphi 7 的控制台应用程序中使用随机方法

python - 使用递归创建随机元素列表

language-agnostic - 条件随机场——它们是如何工作的?

javascript - 相当于 elm (或 javascript)中的 std::nextafter (下一个可表示的 float )

elm - 你能在榆树中使用字符串进行记录访问吗?

elm - 如何将数字转换为字符串

javascript - 每次为我的网站生成一个随机值

html-select - 如何在 Elm 中打印所选选项的索引?

elm - 如何在 Elm 中使用需要有效负载的消息创建任务?

范围内的 Javascript 随机数生成器,低于和高于给定范围