我正在为guide.elm-lang网站上的Random示例添加一个功能,以显示您投掷骰子的总次数以及每个面出现的次数统计信息。
为此,我已将模型更改为以下内容:
为此,我已将模型更改为以下内容:
type alias Model =
{
die_face : Int,
total_throws : Int,
stats: Array.Array Int
}
这是我更新模型的步骤:
{ model |
die_face = face,
total_throws = model.total_throws + 1,
stats = Array.set face ((Array.get face model.stats) + 1) model.stats
}
这会抛出一个错误,告诉我:
This
get
call produces:
#Maybe# Int
But (+) only works with #Int# and #Float# values.
这里涉及到Array.get
返回的不是一个Int
而是一个Maybe
,因此我无法将其添加到数字1上。
我尝试使用列表来实现相同的目的,但由于它们没有索引,我不确定在映射时应该增加什么。我考虑使用记录来做到这一点,并找出一种将记录键映射到face
Int的方法。
总的来说,我的问题是,在elm中如何对数组中索引为[x]的元素进行递增?或者如果我只是想错了,那么什么是elm的正确方式?