斐波那契数列
= List.Generate(()=>{1,1},each _{0}<100,each {_{1},_{0}+_{1}},each _{0})
这个简洁的斐波那契公式是经过多位大佬的努力才又的结果
那么他是如何执行的呢
{0}代表表的第一个值,如果小于100,就执行
初始{1,1},{0}=1,小于100,条件符合,执行{{1},{0}+_{1}}
结果{1,1+1},{2,3},{3,5},{5,8},{8,13},{13,21},{21,34},{34,55},{55,89},{89,144},后面{144,233}就不符合了
每次取第一个值,{1,1,2,3,5,8,13,21,34,55,89}
递归如何写
= let fx = (x)=>if x{0}<100 then {x{0}}&@fx({x{1},x{0}+x{1}}) else {x{0}} in fx({1,1})
acc如何写:
= List.Accumulate({1..10},{{},1,1},(x,y)=>{x{0}&{x{1}},x{2},x{1}+x{2}}){0}
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)