haskell - `where` 子句在 Haskell 中在哪里派上用场

标签 haskell syntax coding-style where-clause

我发现我很少遇到需要使用 where 的情况。条款。但是,我确实发现过去我偶尔使用过它。 where 是什么时候使用的子句(即它在什么情况下使用)?我应该在什么情况下使用它?

最佳答案

Haskell Wiki 上也有这个问题的两个很好的答案:

http://haskell.org/haskellwiki/Declaration_vs._expression_style
http://haskell.org/haskellwiki/Let_vs._Where

两者都用于创建可能使用传递到其封闭函数范围内的值的本地定义,并且肯定在封闭函数的上下文之外不可用。它们促进代码重用并最大限度地减少重复。给定 fix和 lambda,两者都可以完全脱糖。通常,我尽可能使用 where 子句,并且只倾向于在 lambda 或 case block 内或 do 中使用 let 子句进行定义。表示法,当使用通过 <- 提取的值时在前几行。总的来说,我认为声明式风格现在比惯用的现代 Haskell 代码中的表达风格更普遍。

关于haskell - `where` 子句在 Haskell 中在哪里派上用场,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6032183/

相关文章:

haskell - 为性能配置 Snap

haskell - 在 Haskell 中处理来自第三方库的数据类型的最佳实践?

haskell - 防止类型统一

syntax - ":="在伪代码中是什么意思?

syntax - Dart中点前的问号

winapi - 如何让 Win32 使用 Windows XP 样式字体

multithreading - 了解线程化 GHC haskell 程序的子进程

javascript - Jade 和 Connect-Assets 升级问题

C 样式 : why assign variables with only one space?

私有(private)嵌套类中的 Java 作用域修饰符