相关疑难解决方法(0)

Haskell中"Just"语法意味着什么?

我已经在网上搜索了这个关键字的实际解释.我看过的每个Haskell教程都是随机开始使用它,而不是解释它的作用(我看过很多).

这是Real World Haskell使用的基本代码Just.我理解代码的作用,但我不明白它的目的或功能Just是什么.

lend amount balance = let reserve    = 100
                      newBalance = balance - amount
                  in if balance < reserve
                     then Nothing
                     else Just newBalance
Run Code Online (Sandbox Code Playgroud)

从我所观察到的,它与Maybe打字有关,但这几乎是我所学到的.

Just非常感谢对什么方法的一个很好的解释.

syntax haskell

109
推荐指数
3
解决办法
3万
查看次数

哈斯克尔:(也许)monad建筑

我目前正在努力研究Haskell的新元素:Monads.因此,我通过一个创建>> =运算符的例子介绍了这个例子,该运算符只在不等于Nothing的情况下执行可能类型的函数(将其实际的整数值作为参数),否则返回Nothing:

(>>=) :: Maybe a -> (a -> Maybe b) -> Maybe b
Nothing >>= _ = Nothing
(Just x) >>= f = f x
Run Code Online (Sandbox Code Playgroud)

但是,我不太确定它如何与以下用法一起使用:

eval (Val n) = Just n
eval (Div x y) = eval x >>= (\n ->
    eval y >>= (\m ->
        safediv n m))
Run Code Online (Sandbox Code Playgroud)

在我看来,(>> =)运算符只需要一个Maybe值和一个返回一个的函数,但是在这个例子中,使用代码看起来好像是一个可能值的2倍和一个函数.然而我被告知它评估x,将结果放入n,然后计算y,将结果放入y,然后在两者上执行safediv函数.虽然我没有看到(>> =)运算符在这里扮演什么角色; 这是如何运作的?

如果有人能帮我解决这个问题,我将不胜感激.

提前致谢!

最好的问候,Skyfe.

monads haskell maybe

2
推荐指数
1
解决办法
435
查看次数

标签 统计

haskell ×2

maybe ×1

monads ×1

syntax ×1