Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NullPointerException clojure.core/filter/fn_Clojure - Fatal编程技术网

NullPointerException clojure.core/filter/fn

NullPointerException clojure.core/filter/fn,clojure,Clojure,为什么: (filter f xs) ,将导致一个错误,该错误如下所示: NullPointerException clojure.core/filter/fn 筛选器不接受nil作为其第一个函数参数 IMO,因为当您研究过滤器实现时,并没有检查f是否是函数。我希望这样做是出于性能原因。例如,由于性能原因,字符串模块也不会检查给定的字符串是否为零。Clojure将其Java或.NET根泄漏到用户可见的错误消息中并不常见。毫无疑问,随着时间的推移,你会看到更多这样的东西。我正试图让像我这样的人在

为什么:

(filter f xs)
,将导致一个错误,该错误如下所示:

NullPointerException clojure.core/filter/fn

筛选器不接受nil作为其第一个函数参数


IMO,因为当您研究过滤器实现时,并没有检查f是否是函数。我希望这样做是出于性能原因。例如,由于性能原因,字符串模块也不会检查给定的字符串是否为零。

Clojure将其Java或.NET根泄漏到用户可见的错误消息中并不常见。毫无疑问,随着时间的推移,你会看到更多这样的东西。我正试图让像我这样的人在无法解决错误消息的情况下将错误消息输入Google时变得更容易。你可能希望查看Clojure代码编译成的JVM字节码,然后使用反编译器查看Java源代码,然后确定NPE的原因。@Ray Toal。确定原因的最简单方法是使用一些尝试和错误。进入REPL并尝试filter nil[:a]和filter identity nil。其中之一可能会导致相同的错误消息。我知道答案,只是要求记录在案……一切都好。为什么不回答你自己的问题呢?这是一个非常可接受的做法,用于添加到本网站的知识库。当规范存在时,是否会检查f是否为零,是否有一个函数或可以用作函数的东西,例如关键字??那么在开发时可能会有更好的错误消息,但在生产中仍然会有此消息。理想情况下,错误消息应该说什么?如果你能把它写进你的答案中,那么这个问题就会得到回答。