这与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)。
谢谢 - 榆树的新手,所以任何指导都表示赞赏。
答案 0 :(得分:2)
根据错误消息,您可能已经定义了 Plus.PeopleApi.load(mGoogleApiClient, listID).setResultCallback(this);
,如下所示:
NewFaces
type Msg
= Roll
| NewFaces List
采用单个类型参数,因此应将其定义为
List