J'ai un Data.Sequence que je dois parcourir. Le problème est que son état, et la séquence peut se développer à la suite de ladite itération. Donc, je le fais avec une récursivité explicite, mais il semble clunkky. En outre, cela semble être une chose commune à faire. Quelle structure de contrôle monadique commune ai-je réinventé, mal?itérer monadique sur une Data.Sequence
2
A
Répondre
2
Pour répondre à la question initiale, vous « réinventé » la monade de l'Etat dans le monade de l'Etat lui-même! Vous pouvez déplacer les éléments que vous enfoncez explicitement dans votre état pour éviter de les transmettre directement. D'un autre côté, pour des choses simples comme celle-ci, je n'ai aucun problème à passer des choses explicitement, et je trouve souvent que c'est plus propre.
Enfin, comme le fait remarquer Daniel Wagner, vous devriez pousser et sauter du haut, autant que possible, par souci d'efficacité.
Questions connexes
- 1. Convertir Data.Sequence à une liste?
- 2. cas sur valeur monadique
- 3. non EmptyL dans data.sequence?
- 4. La conversion d'une fonction monadique à une fonction IO monadique
- 5. sur une collection itérer
- 6. Concevoir un type monadique
- 7. Simplifier cette expression monadique
- 8. Verilog bitwise ou ("|") monadique
- 9. Segfault itérer sur une QList
- 10. Itérer sur une plage d'itératives
- 11. jstl sur une liste itérer
- 12. Haskell: comment écrire une fonction variadique monadique, avec des paramètres utilisant le contexte monadique
- 13. Pourquoi Haskell a-t-il Data.Sequence?
- 14. Substitution monadique sous les classeurs
- 15. sortie Lazy d'une action monadique
- 16. Utiliser Iterable pour itérer sur une ArrayList?
- 17. Itérer sur une catégorie dans le modèle
- 18. itérer sur une sous-requête MySql
- 19. itérer sur une liste en Java
- 20. Itérer sur une chaîne JSON avec Bash
- 21. Itérer sur une liste enveloppée Scala
- 22. TinyXML Itérer sur une sous-arborescence
- 23. Itérer sur une structure de données complexe
- 24. Itérer sur une chaîne (assemblage 8086)
- 25. Itérer sur une colonne en PL/SQL
- 26. itérer sur une collection en C#
- 27. Comment itérer sur une séquence boost :: fusion?
- 28. itérer sur une colonne d'entité LINQ
- 29. Comment Drools à itérer sur une liste
- 30. Itérer sur un tableau dans une fonction
N'êtes-vous pas travailler à l'intérieur monade de l'État? – Satvik
Si la séquence change seulement en ajoutant des choses, et tout ce que vous faites avec la séquence est la recherche que vous avez montrée, alors vous avez réinventé la recherche de largeur en premier (mal). Prenez une implémentation de file d'attente de Hackage et profitez-en. –
+ Satvik, oui, je travaille dans la monade de l'Etat. + Daniel Wagner, oui, la séquence n'est changée qu'en ajoutant. Y a-t-il une implémentation de file d'attente que je devrais utiliser à la place de Data.Sequence? Data.Queue dit qu'il est déprécié en faveur de Data.Sequence – nont