在Elm中生成随机的整数列表时键入冲突

时间:2016-07-24 06:16:46

标签: elm

这与Elm教程(http://guide.elm-lang.org/architecture/effects/random.html)有关,我正在尝试为其中一个挑战生成一个随机数列表(现在只有2个项目)。

尝试生成列表时出现类型错误:

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

39|               Random.generate NewFaces intList)
                                       ^^^^^^^
Function `generate` is expecting the 2nd argument to be:

    Random.Generator List

But it is:

    Random.Generator (List Int)

这是我正在使用的代码:

update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
  case msg of
    Roll ->
      let
        intList : Random.Generator (List Int)
        intList =
          Random.list 2 (Random.int 1 6)
      in
      (model, Random.generate NewFaces intList)
    NewFaces newFaces ->
      ({ model | dieFaces = newFaces}, Cmd.none)

我仍然试图让我的头脑缠绕 - 特别是关于列表。我猜(List Int)是指一个整数列表,但我不确定List本身是什么意思(任意类型的列表?)。

我通过将Generator拉出到一个单独的变量(intList)并显式输入它来解决代码问题。我也尝试输入Random.Generator List,它也会引发错误。基本上,我可以使用帮助找出如何协调List vs.(List Int)。

谢谢 - 榆树的新手,所以任何指导都表示赞赏。

1 个答案:

答案 0 :(得分:2)

根据错误消息,您可能已经定义了 Plus.PeopleApi.load(mGoogleApiClient, listID).setResultCallback(this); ,如下所示:

NewFaces

type Msg = Roll | NewFaces List 采用单个类型参数,因此应将其定义为

List