【发布时间】:2014-05-22 18:55:04
【问题描述】:
Haskell 新手在这里。我试图从 Haskell 的 diagrams 库中理解 this 示例。具体来说,有这样一行:
Just t = <thing> 其中<thing> 的类型为Maybe (Tree a)
我不明白这是在做什么。我知道我们需要从Maybe 中获取价值。我用
t = fromJust <thing>
它的工作原理是一样的。这两行有什么区别吗,谁能解释一下第一行是做什么的?
【问题讨论】:
-
旁注:考虑使用
fmap而不是fromJust或Just t = ... -
两者之间有一个语义上没有出现的细微差别:当
...是Nothing时,Just t = ...会给你一个错误,其中一行指向那个模式;t = fromJust ...会给你一个错误,其中一行指向fromJust的实现。 -
区别在于
fromJust在pointfree 表达式链中的使用方便。 -
正如 Daniel 所说:模式匹配方法使得程序因无用的
I'm so sorry而死亡和带有源代码位置的有用错误消息之间存在差异。避免fromJust。