【发布时间】:2019-12-20 11:04:02
【问题描述】:
我正在对一些非常基本的功能进行原型设计,但 REPL 输出的是完全随机的东西。
只是尝试编写一个函数来更新地图中的值会得到以下结果:
fwd.core=> (fn [step] (update {:x 10 :y 10} :x 20) 20)
#object[fwd.core$eval1593$fn__1594 0x3d2da438 "fwd.core$eval1593$fn__1594@3d2da438"]
【问题讨论】:
-
这基本上是 jvm 看到的那个函数“对象”中的
.toString -
啊,我明白了,我在那里搞砸了我的函数定义。但是这些错误信息真的很糟糕……
-
这不是错误消息,它是代表该函数对象的字符串。您的代码是一个完全有效的函数。读心术超出了大多数编译器的范围。
-
这不是“错误”——你在那里显示的代码是合法的,这是你的功能的字符串表示——而在我的 repl 中,我得到了一个更短的名称(也许它随着 1.10 而你在一些旧版本上?)。如果您想为该 anon-fn 取一个“更好”的名称,您可以将其命名为:
(fn my-fun [step] ...) -
我正在努力学习这个。但是感谢您解决这个问题!
标签: clojure read-eval-print-loop