【发布时间】:2015-02-13 10:31:25
【问题描述】:
我一直在试验 Clojure 1.6.0 中引入的clojure.java.api,因为我想将一些 Clojure 功能导入到我的 java 项目中。不幸的是,当我从 Java 调用条件函数 and 和 or 时,它的行为与我预期的不同。
IFn and = Clojure.var("clojure.core", "and");
IFn or = Clojure.var("clojure.core", "or");
-- equivalent to (and true false) in clojure
and.invoke(true,false); --> returns true rather than false???
-- equivalent to (or true false) in clojure
or.invoke(true,false); --> returns null rather than true???
-- equivalent to (and true true) in clojure
and.invoke(true,true); --> returns true as expected
-- equivalent to (or true true) in clojure
or.invoke(true,true); --> returns null rather than true???
我不敢相信这是一个错误,所以我怀疑我遗漏了一些与 API 相关的相当基本的东西。不管是什么原因,这让我很困惑。如果有人能提供解释,我将不胜感激。
谢谢,
马特。
【问题讨论】:
标签: java api clojure conditional