Estoy empezando a enseñarme Clojure. Como parte de mis estudios complementarios, he visto algunas conferencias de UC Berkley de Brian Harvey sobre el tema de la programación funcional. En su second lecture on functional programming, aproximadamente en el minuto 34, usa la aplicación para mostrar el orden de evaluación. ¿Tiene Clojure una función similar a esta? Seguramente sería útil ver el orden de la evaluación mientras trabajo para entender los por qué y dónde.¿Hay alguna manera de mostrar paso a paso cómo evalúa Clojure una función?
9
A
Respuesta
8
Puede hacer precisamente en REPL (respuesta de Mike Meyer en Clojure lista de correo: Debugging in Clojure)
=> (use 'clojure.contrib.trace)
nil
=> (defn foo [coll] (reduce + coll))
#'web-db.core/foo
=> (defn bar [coll] (map inc coll))
#'web-db.core/bar
=> (dotrace [foo bar] (foo (bar [1 1 1])))
TRACE t3868: (bar [1 1 1])
TRACE t3868: => (2 2 2)
TRACE t3869: (foo (2 2 2))
TRACE t3869: => 6
6
hay también Clojure Depuración Toolkit ("instrucciones ridículamente mucho sobre cómo usarlo aquí: http://georgejahad.com/clojure/emacs-cdt.html ")
Y algunos IDE (como Eclipse con el plugin antihorario) permiten depurar: establecer puntos de interrupción, ver gente, paso de entrada/salida, ...
Cuestiones relacionadas
- 1. Beamer: Cómo mostrar imágenes como imágenes paso a paso
- 2. ¿Cómo paso el contexto a una función?
- 3. AppEngine: Depuración paso a paso
- 4. Django paso a paso form.save
- 5. Maven + GAE paso a paso
- 6. ¿hay alguna herramienta o IDE para depurar paquetes R y ejecutarlo paso a paso?
- 7. ¿Hay un depurador paso a paso para Haskell?
- 8. matplotlib, paso a la animación paso
- 9. Django - asistente de formulario paso a paso
- 10. ¿Cómo ejecutar un programa Perl paso a paso?
- 11. Trazando una función de paso en Mathematica
- 12. ¿Cómo paso un atributo personalizado a una función?
- 13. Rhino Mocks Tutoriales paso a paso
- 14. Paso a paso Google SSO (java)?
- 15. MATLAB: ¿Cómo paso un parámetro a una función?
- 16. ¿Cómo paso un hash a una función en Perl?
- 17. Emacs Lisp macro paso a paso
- 18. ¿ASP.NET MVC es un paso atrás de alguna manera?
- 19. ¿Cómo paso un puntero a una función c en Cython?
- 20. ¿Cómo paso una función como parámetro a en elisp?
- 21. Symfony 2.0 tutorial paso a paso requerido
- 22. Necesita un WCF paso a paso como servicio de Windows
- 23. Acceso fuera de línea de Facebook paso a paso
- 24. Actualización paso a paso de Indy 10 en Delphi 2009
- 25. Seleccione qué método "Paso a Paso" en el depurador
- 26. Meteor Paso a paso mi primera guía de aplicaciones?
- 27. Paso a paso Creación/despliegue automatizado de ASP.NET
- 28. ¿Cómo paso un método estático para comp en clojure?
- 29. MATLAB: aplique un filtro de paso bajo o de paso alto a una matriz
- 30. ¿Cómo depurar/ejecutar un programa Ocaml paso a paso?
el problema con la biblioteca de traza es t que no es compatible con los operadores integrados, como '+' ... Lo recuerdo, era un trazador más avanzado, pero no recordaba su nombre –