有没有办法逐步显示 Clojure 如何评估函数?

发布于 2024-11-27 16:59:41 字数 255 浏览 1 评论 0原文

我刚刚开始自学 Clojure。作为补充学习的一部分,我观看了加州大学伯克利分校 Brian Harvey 的一些关于函数式编程主题的讲座。在他的关于函数式编程的第二讲中,大约第 34 分钟,他使用了 apply 函数显示评估顺序。 Clojure有类似的功能吗?当我努力理解原因和原因时,查看评估顺序肯定会很方便。

I'm just starting to teach myself Clojure. As part of supplementing my studies I've watched a few UC Berkley lectures by Brian Harvey on the topic of functional programming. In his second lecture on functional programming, at about minute 34, he uses the applic function to show the order of evaluation. Does Clojure have a feature similar to this? It sure would be handy to see the order of evaluation as I work to understand the whys and wherefores.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清风疏影 2024-12-04 16:59:41

您可以只在 REPL 中执行(Mike Meyer 在 Clojure 邮件列表中的回答:在 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

还有 Clojure 调试工具包
(“这里有关于如何使用它的长得可笑的说明:
http://georgejahad.com/clojure/emacs-cdt.html ")

还有一些IDE(如带有逆时针插件的 Eclipse)允许调试:设置断点、查看局部变量、单步进入/退出,...

You can do just in REPL (answer by Mike Meyer in Clojure mailing list: 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

there are also Clojure Debugging Toolkit
("Ridiculously long instructions on how to use it are here:
http://georgejahad.com/clojure/emacs-cdt.html ")

And some IDE (like Eclipse with Counterclockwise plugin) allow to debug: to set breakpoints, see locals, step in/out, ...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文