【发布时间】:2022-08-16 06:14:33
【问题描述】:
所以,我一直在 Exercism.org 上做 Elm 跟踪,我刚刚完成了关于 Maybe 概念的练习,但有一件事我还不清楚。 Maybe的定义中Just的用途是什么?
type Maybe a = Nothing | Just a
例如,Int 和Just Int 之间有什么区别,如果我之前不添加Just 字,为什么整数不被视为Just Int?
更具体地说,当我试图解决 RPG problem 时,我的第一次尝试导致了这样的结果:
type alias Player =
{ name : Maybe String
, level : Int
, health : Int
, mana : Maybe Int
}
revive : Player -> Maybe Player
revive player =
case player.health of
0 ->
if player.level >= 10 then
Player player.name player.level 100 100
else
Player player.name player.level 100 Nothing
_ ->
Nothing
只是为了发现我的错误出现在 if 语句中,它应该返回 Just Person,即:
if player.level >= 10 then
Just (Player player.name player.level 100 (Just 100))
else
Just (Player player.name player.level 100 Nothing)
标签: functional-programming elm