相关疑难解决方法(0)

Clojure数字运算表现

我不确定这是属于StackOverflow还是属于Clojure Google小组.但该小组似乎正在忙着讨论Clojure 1.2的数字改进,所以我会在这里尝试:

http://shootout.alioth.debian.org/为各种语言提供了许多性能基准.

我注意到Clojure丢失了,所以我制作了一个关于n体问题的Clojure版本.

我可以在这里找到我能够生成的最快的代码,并且对它进行基准测试似乎是说数字运算Clojure是

  • 因果〜比Python/Ruby/Perl快10倍
  • 因子比C/Java/Scala/Ada慢4倍
  • 与OCaml,Erlang和Go大致相同

我对这种性能表现非常满意.

我对Clojure大师的问题是

  • 无论是在速度方面还是在代码简洁性或可读性方面(不牺牲速度),我是否都有明显的改进?
  • 您是否认为这一方面代表了Clojure性能与Python/Ruby/Perl和另一方面Java/C?

更新

对于枪战更多的Clojure 1.1基准程序在这里,其中包括正体问题.

performance benchmarking clojure

20
推荐指数
2
解决办法
2975
查看次数

创建一个Protocols和defrecords库,供Java使用

目前,我有一个完全功能的Clojure库,它是从Java调用的.

我这样做的方式:我有一个文件,它使用gen-class将整个API包装为单个类的静态方法,并以IPersistentVector和IPersistentMap的形式传入和传出数据.

然而,现在,我正在重构库并将功能置于各种协议之后.

我有四个协议,我们称之为A,B,C和D.两个defrecords,X和Y.X和Y都实现协议A,B和C.而Y也实现D.

我需要做些什么才能使这些可用于Java?这些是否自动作为接口和类?或者我仍然必须做相当于gen-class的公开?

如果没有,什么是gen-class:methods子句的等价物,我在哪里定义方法参数的Java类型?

有没有人有一个简单的例子可以让Java的协议和记录可用?

clojure clojure-java-interop clojure-protocol

12
推荐指数
1
解决办法
424
查看次数