Articles of récursivité

Fonction récursive provoquant un débordement de stack

J’essaie d’écrire une simple fonction de tamis pour calculer les nombres premiers dans la structure. J’ai vu cette question sur l’écriture d’une fonction de tamisage efficace, mais je n’en suis pas encore là. En ce moment, j’essaie juste d’écrire un tamis très simple (et lent). Voici ce que j’ai imaginé: (defn sieve [potentials primes] (if-let […]

Profondeur de la récursion C # – À quelle profondeur pouvez-vous aller

Y a-t-il un contrôle sur combien vous pouvez appeler récursivement quelque chose? A partir d’un programme de test de base, j’ai une profondeur de récursion d’un peu plus de 18k qui dépend de la stacksize …. existe-t-il un moyen de configurer un morceau de mémoire (peut-être un thread) avec une stack massive pour augmenter la […]

Générer l’opcode d’appel de queue

Par curiosité, j’essayais de générer un opcode d’appel de queue en utilisant C #. Fibinacci est facile, donc mon exemple c # ressemble à ceci: private static void Main(ssortingng[] args) { Console.WriteLine(Fib(int.MaxValue, 0)); } public static int Fib(int i, int acc) { if (i == 0) { return acc; } return Fib(i – 1, acc […]

Pourquoi foldl est-il défini de manière étrange dans Racket?

Dans Haskell, comme dans de nombreux autres langages fonctionnels, la fonction foldl est définie de telle sorte que, par exemple, foldl (-) 0 [1,2,3,4] = -10 . C’est correct, car foldl (-) 0 [1, 2,3,4] est, par définition, ((((0 – 1) – 2) – 3) – 4) . Mais, dans Racket, (foldl – 0 ‘(1 […]

Recherche de fichier dans des répertoires récursifs

J’ai le code suivant pour rechercher de manière récursive des fichiers via un répertoire, qui renvoie une liste de tous les fichiers xml à moi. Tout fonctionne bien, sauf que les fichiers xml du répertoire racine ne sont pas inclus dans la liste. Je comprends pourquoi, car la première chose à faire est d’obtenir les […]

Est-il légal de rentrer dans main () en C ++?

J’ai lu que le standard C ++ interdit la récursivité dans main() , mais g ++ comstack le code suivant sans se plaindre: int main() { main(); } Quelqu’un peut-il clarifier cela?

Quand utiliser le mutex récursif?

Je crois comprendre que le mutex récursif permet de verrouiller le mutex plus d’une fois sans se retrouver dans une impasse et qu’il doit être déverrouillé le même nombre de fois. Mais dans quelles situations spécifiques avez-vous besoin d’utiliser un mutex récursif? Je recherche des situations de conception / niveau de code.

Que signifie Python en imprimant «» pour une référence d’object?

J’imprime une valeur de ce que je pensais être une liste, mais le résultat est le suivant: […] Qu’est-ce que cela représente? Comment puis-je le tester? J’ai essayé: myVar.__repr__() != ‘[…]’ et myVar.__repr_() != Ellipsis mais pas de dés … Voici une coupure du code qui donne le problème: def buildPaths(graph, start, end, path=[], totalPaths=[]): […]

Quel est le moyen le plus simple d’obtenir la valeur de propriété d’une expression lambda transmise dans une méthode d’extension pour HtmlHelper?

J’écris une sale petite méthode d’extension pour HtmlHelper afin que je puisse dire quelque chose comme HtmlHelper.WysiwygFor (lambda) et afficher le CKEditor. J’ai ce travail actuellement, mais cela me semble un peu plus lourd que je ne le souhaiterais. J’espère qu’il y a une façon plus simple de le faire. Voici ce que j’ai jusqu’ici. […]

Récursion de la queue en C ++

Quelqu’un peut-il me montrer une simple fonction récursive en C ++? Pourquoi la récursion de la queue est-elle meilleure, si c’est le cas? Quels sont les autres types de récursivité en dehors de la récursion de la queue?