Les fermetures dans le langage Power Query M peuvent-elles être récursives?Fermetures de requêtes de puissance et récursion; Des manuels sur ça?
Les fonctions peuvent être récursives. Je nomme une fonction-requête Fibonacci, définie comme
Cela fonctionne très bien. Mais quand je tente de se tenir debout dans une seule requête, il perd:
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
Le tableau qui en résulte est
1 1
2 Error
3 Error
5 Error
avec les erreurs de message étant « Fib introuvable, avez-vous oublié d'importer un module?
Existe-t-il un autre moyen de contourner ce problème? Ou, si j'ai besoin d'une fonction récursive, doit-elle être considérée comme sa propre requête?
interroge Meta - Dans M, est une fonction définie localement comme
Fib = (X)=> if X <= 1 then 1 else X + Fib(X - 1)
appelé fermeture, ou une expression lambda, ou quoi? Je les ai vus utilisés, mais je ne les ai pas entendus nommé. Donc, je ne sais pas comment rechercher des messages à leur sujet.
Existe-t-il un bon manuel ou une source en ligne qui m'apprendrait tout sur les fermetures Power Query? Mon go-to texte, M est pour (DATA) Singe, dit presque rien à leur sujet. Surtout, je voudrais juste un tas d'exemples. Je veux savoir sur
- Quand les utiliser
- Recursion et récursion mutuelle
- Comment ils se rapportent/comparer à l'aide chaque
- fermetures à plusieurs instructions - à l'aide laisser dans un laisser.
- les Débogage
Si vous serez si aimable de répondre à ma réponse à votre question précédente https://stackoverflow.com/questions/45623765/excel-power-query-using-list-matchany-on-a-column-value Je vais envisager de réagir sur cette nouvelle question. – MarcelBeug
Fait, et merci. J'apprends toujours mon chemin autour de StackOverflow; désolé je n'ai pas répondu rapidement. –