gpt4 book ai didi

haskell - 如何在 Haskell 中全局定义关键字 "where"

转载 作者:行者123 更新时间:2023-12-02 02:52:09 46 4
gpt4 key购买 nike

我正在阅读 learnyouahaskell.com 中的指南。一句话提到“哪里”可以全局共享,但没有给出示例,请问哪里可以找到一些细节?

“绑定(bind)不跨不同模式的函数体共享。如果您希望一个函数的多个模式访问某个共享名称,则必须全局定义它。”

最佳答案

来自 Chapter 4: Syntax in Functions :

where bindings aren't shared across function bodies of different patterns. If you want several patterns of one function to access some shared name, you have to define it globally.



这是一个插图:
f (Left x) = double x
f (Right x) = double x
where
double x = 2 * x

函数 f每个模式都有一个主体 (Left x)(Right x) . double的绑定(bind)不在函数体之间共享,因此此代码不是有效的 Haskell。

如果我们想访问 double从两个函数体中,我们必须将其移出 where条款:
double x = 2 * x

f (Left x) = double x
f (Right x) = double x

这就是引用段落的全部含义。

关于haskell - 如何在 Haskell 中全局定义关键字 "where",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7377022/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com