我是榆树的新手。我想要做的是我尝试使用set而不是List初始化模型,但是给定elm没有任何set的初始化器(这是一种耻辱,如果它是#的话它会很好# {1,2,3},如同在Clojure中一样,这是有问题的。
使用代码(榆木教程代码,稍微修改一下),我正在尝试
main =
App.program
{ init = init "cats"
, view = view
, update = update
, subscriptions = subscriptions
}
-- MODEL
type alias Model =
{ topic : String
, gifUrl : String
, error : String
, history : Set String
}
init : String -> (Model, Cmd Msg)
init topic =
( Model topic "waiting.gif" "" Set.fromList([topic])
, getRandomGif topic
)
这会引发编译错误:
Function `Model` is expecting 4 arguments, but was given 5.
这很奇怪,因为它不会在Elm repl中抛出错误,并且在大多数情况下都是有效的代码。
我将如何实现这一目标?
答案 0 :(得分:4)
问题源于您使用括号。
x==0
您不需要在Elm的括号中包含参数,但是您需要将Model topic "waiting.gif" "" Set.fromList([topic])
-- is the same as:
Model topic "waiting.gif" "" Set.fromList [topic]
的整个第四个参数括起来,以便编译器知道它是一个参数。将其更改为此,您应该全部设置:
Set.fromList [topic]