gpt4 book ai didi

haskell - 为什么 Haskell 认为 lambda 抽象是弱头范式(WHNF)?

转载 作者:行者123 更新时间:2023-12-02 16:10:42 25 4
gpt4 key购买 nike

在 Haskell 中,lambda 被认为是 WHNF,而未应用的用户定义函数则不然。这种区别背后的动机是什么?

最佳答案

将信息附加到需要在计算函数之前计算的函数通常很有用,但随后可以在调用之间共享。

cleverFunction = \x -> simpleCombine x expensiveConstant
where expensiveConstant = ...
simpleCombine x c = ...

请注意,虽然 cleverFunction 被定义为 lambda,但由于 where block ((\l x -> .. .) locBindings).

没有任何封闭作用域的 lambda 没有可以在调用之前计算的变量(lambda 中的变量仅对单次调用有效,并在之后被垃圾收集),即它已经在正常形式(实际上是 NF,而不仅仅是 WHNF)。

关于haskell - 为什么 Haskell 认为 lambda 抽象是弱头范式(WHNF)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25596173/

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