Excel 幂查询闭包和递归;这方面的教科书?
powerquerym语言中的闭包可以是递归的吗 函数可以是递归的。我将函数查询命名为Fibonacci,定义为Excel 幂查询闭包和递归;这方面的教科书?,excel,recursion,closures,powerquery,m,Excel,Recursion,Closures,Powerquery,M,powerquerym语言中的闭包可以是递归的吗 函数可以是递归的。我将函数查询命名为Fibonacci,定义为 (X) => let Fib = if X <= 1 then 1 else X + Fibonacci(X - 1) in Fib 由于未找到错误“消息为”Fib,您是否忘记导入模块 还有别的办法吗?或者,如果我需要一个递归函数,它是否必须作为它自己的查询而存在 元查询——在M中,是一个本地定义的函数,如 Fib = (X)=> if X &l
(X) =>
let
Fib = if X <= 1 then 1 else X + Fibonacci(X - 1)
in
Fib
由于未找到错误“消息为”Fib,您是否忘记导入模块
还有别的办法吗?或者,如果我需要一个递归函数,它是否必须作为它自己的查询而存在
元查询——在M中,是一个本地定义的函数,如
Fib = (X)=> if X <= 1 then 1 else X + Fib(X - 1)
Fib=(X)=>如果X如果你想递归调用一个函数,你需要添加一个@作为所谓的“作用域操作符”,所以这段代码是可以的(我刚刚在你的代码中将@添加到“Fib”中):
let
FIB=(x)=>如果X,如果你对我的前一个问题的回答如此友好,我会考虑对这个新问题作出反应。我仍然在学习如何处理StackOverflow;很抱歉,我没有及时回复。谢谢Marcel,包括代码修复和参考资料。你知道,我刚开始学习M时就下载了语言规范,但当我试图理解它时,我已经不知所措了。(太多了,太快了。)在你的便条之后,我把它挖出来,读你指的地方。这对我来说现在更有意义了。
1 1
2 Error
3 Error
5 Error
Fib = (X)=> if X <= 1 then 1 else X + Fib(X - 1)
let
Fib = (X)=> if X <= 1 then 1 else X + @Fib(X - 1),
Source = Table.FromRecords({[X=1],[X=2],[X=3],[X=5]}),
UseIntFib = Table.AddColumn(Source, "Fib", each Fib([X]) )
in
UseIntFib