有人可以向我解释或将我链接到一个很好的指南,该指南解释了让和在 Haskell 中的位置 [关闭]
Posted
技术标签:
【中文标题】有人可以向我解释或将我链接到一个很好的指南,该指南解释了让和在 Haskell 中的位置 [关闭]【英文标题】:Can someone explain to me or link me to a good guide that explains let and where in Haskell [closed] 【发布时间】:2013-12-04 07:50:05 【问题描述】:我从未在我编写的任何程序中使用过这两个关键字,因为我不太了解它们,也不了解它们应该何时使用,是否可以一起使用等等。
【问题讨论】:
我推荐 Haskell 2010 报告。 @James ***.com/questions/4362328/haskell-where-vs-let 【参考方案1】:有时,您的代码如下:
foo x y = if min (abs x) (abs y) > 0 then negate (min (abs x) (abs y)) else min (abs x) (abs y)
使用let
或where
,您可以为常用表达式引入缩写,从而使您的代码更具可读性:
foo x y = if z > 0 then negate z else z
where
z = min (abs x) (abs y)
相当于:
foo x y = let
z = min (abs x) (abs y)
in if z > 0 then negate z else z
let-expression 就是这样:一个表达式并且可以出现在表达式可以出现的任何地方,而 where
子句是 case 替代或模式绑定的可选最后部分。
【讨论】:
虽然有细微的差别。 This 链接很好地解释了它作为最后一个示例,其中函数定义方式的微小变化可能导致性能出现很大差异。以上是关于有人可以向我解释或将我链接到一个很好的指南,该指南解释了让和在 Haskell 中的位置 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章