首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >考虑f(F)中的函数f=设f= x+1

考虑f(F)中的函数f=设f= x+1
EN

Stack Overflow用户
提问于 2022-01-07 19:36:02
回答 1查看 139关注 0票数 1

我正在Haskell学习语法考试,希望能得到一些关于为什么这等于2的帮助:

“考虑函数:f= let =f (f )中的x+1,f中let x=0的值是多少?”

答案是2。

但是“让f= x+1”意味着f (x+1)。如果我们让x=0,那不是f(1)吗?

感谢您的阅读

EN

回答 1

Stack Overflow用户

发布于 2022-01-07 19:53:54

有两种不同的功能正在使用。在原始函数中,不存在递归;所有对f的引用都引用由let表达式定义的函数,而不是定义的函数。还有两个不同的作用域,它们都包含一个名为x的变量。如果您重命名内部函数及其参数,则会更清楚:

代码语言:javascript
复制
f x = let f' x' = x' + 1 in f' (f' x)

现在,另一个表达式更容易使用等式推理进行评估:

代码语言:javascript
复制
let x = 0 in f x == f 0
                 == let f' x' = x' + 1 in f' (f' 0)
                 == (f' 0) + 1
                 == (0 + 1) + 1
                 == 1 + 1
                 == 2
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70626313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档