有人可以向我解释或将我链接到一个很好的指南,该指南解释了让和在 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)

使用letwhere,您可以为常用表达式引入缩写,从而使您的代码更具可读性:

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 中的位置 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

项目指南

EC2安全组源/目标控制

有人可以像我五岁那样向我解释 chmod 权限吗? [关闭]

MFC中的CString类使用方法指南

您认为 Vert.x 中的垂直设计指南是啥?

SolrJ 上有很好的教程或资源吗? [关闭]