我的公司刚刚要求我在Clojure中重写一个较大的(50,000行代码)Java应用程序(一个使用JSP和servlet的Web应用程序)。有没有其他人知道我应该注意什么?请记住,我非常了解Java和Clojure。更新我进行了重写并投入生产。很奇怪,因为重写最终进行得如此之快,以至于它在大约6周内完成。因为不需要很多功能,它最终还是更像是3000行Clojure。我听说他们对这个系统很满意,它完全按照他们的意愿行事。唯一的缺点是维护系统的人必须从头开始学习Clojure,他被拖入其中,又踢又叫。前几天我确实接到了他的电话,说他现在喜欢Lisp了……很有趣:)另外,我应该好好提一下Va
我用谷歌搜索,但找不到满意的答案。This所以问题是相关的,但有点老,而且与我正在寻找的完全相反:一种使用XPath而不是CSS选择器进行屏幕抓取的方法。我已经将enlive用于一些基本的屏幕抓取,但有时需要XPath选择器的强大功能。所以这里是:对于clojure(java),是否有任何等效于Nokogiri或lxml的东西?“纯JavaNokogiri”的状态如何?有什么方法可以使用clojure中的库吗?比thishack更好的选择? 最佳答案 这里有几种可能性。其中一些需要半良好格式的XML才能工作。如果你没有,我会配对cl
我正在尝试将数字的平方分解为平方和:在ruby中:defdecompose(n)defdecompose_aux(nb,rac)return[]if(nb==0)i,l=rac,nilwhile(i>=Math.sqrt(nb/2.0).to_i+1)dodiff=nb-i*irac=Math.sqrt(diff).to_il=decompose_aux(diff,rac);ifl!=nilthenl在Clojure中:(defndecompAux[nbrac](if(=0nb)()(loop[iraclnil](let[diff(-nb(*ii))rac(int(Math/sqrtd
我尝试按照有关在Heroku上获取Clojure应用程序的指南进行操作。除了在本地运行之外,一切正常。我正在使用Windows7。步骤说:gem安装工头工头开始在1上,我必须是管理员,但安装正常当我执行2时,我得到:C:/ProgramFiles(x86)/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in`require':nosuchfiletoload--pty(LoadError)fromC:/ProgramFiles(x86)/Ruby192/lib/ruby/site_ruby/1.9.1/ru
我有一个Clojure后端,我想在其中放置一个Rails前端。我应该如何连接它们,具体如何连接?在我的脑海中,有两种方法:在与clojure应用相同的进程中在rails上运行Jruby运行普通的RubyonRails,并通过消息队列、网络Hook和联合数据库将其连接到clojure后端。两者似乎都有缺点。在前者中,运行jruby似乎会限制我们可以重用的gem,否则当库作者没有做出完美兼容的东西时会降低我们的生产力。在后者中,我想我们会错过代码重用——在某些情况下可能不得不两次实现相同的事情——而且更复杂的接口(interface)(例如网络Hook而不仅仅是函数调用)将使我们付出代价。
我已经阅读了有关Clojure与Scala的各种描述,但我意识到两者都有其一席之地。在比较Clojure和Scala时,有一些考虑因素我还没有得到完整的解释:1.)这两种语言中的哪一种通常更快?我意识到这会因一种语言功能而异,但对性能的一般评估会有所帮助。例如:我知道Python字典非常快。但总的来说,它是一种比Java慢很多的语言。我不想使用Clojure并在以后遇到这个问题。2.)与Java的互操作性如何?到目前为止,我所读到的只是Scala具有native集合类型,这使得与大型Java代码库集成有点笨拙,而Clojure遵循简单的以Iterable/Iterator为中心的方式与
我已经阅读了有关Clojure与Scala的各种描述,但我意识到两者都有其一席之地。在比较Clojure和Scala时,有一些考虑因素我还没有得到完整的解释:1.)这两种语言中的哪一种通常更快?我意识到这会因一种语言功能而异,但对性能的一般评估会有所帮助。例如:我知道Python字典非常快。但总的来说,它是一种比Java慢很多的语言。我不想使用Clojure并在以后遇到这个问题。2.)与Java的互操作性如何?到目前为止,我所读到的只是Scala具有native集合类型,这使得与大型Java代码库集成有点笨拙,而Clojure遵循简单的以Iterable/Iterator为中心的方式与
大多数关于“从Java调用clojure”的谷歌热门搜索已经过时,建议使用clojure.lang.RT编译源代码。假设您已经从Clojure项目构建了一个jar并将其包含在类路径中,您能否帮助清楚地解释如何从Java调用Clojure? 最佳答案 更新:自从发布此答案以来,一些可用的工具已更改。在原始答案之后,有一个更新,包括有关如何使用当前工具构建示例的信息。它不像编译成jar并调用内部方法那么简单。不过,似乎确实有一些技巧可以使其全部工作。下面是一个可以编译为jar的简单Clojure文件示例:(nscom.domain.ti
大多数关于“从Java调用clojure”的谷歌热门搜索已经过时,建议使用clojure.lang.RT编译源代码。假设您已经从Clojure项目构建了一个jar并将其包含在类路径中,您能否帮助清楚地解释如何从Java调用Clojure? 最佳答案 更新:自从发布此答案以来,一些可用的工具已更改。在原始答案之后,有一个更新,包括有关如何使用当前工具构建示例的信息。它不像编译成jar并调用内部方法那么简单。不过,似乎确实有一些技巧可以使其全部工作。下面是一个可以编译为jar的简单Clojure文件示例:(nscom.domain.ti
我想使用leiningen来构建和开发我的clojure项目。有没有办法修改project.clj告诉它从本地目录中选择一些jar?我有一些无法上传到公共(public)存储库的专有jar。另外,可以使用leiningen来维护clojure项目的“lib”目录吗?如果我的一堆clojure项目共享相同的jar,我不想为每个项目维护一个单独的副本。谢谢 最佳答案 只需在project.clj文件中使用:resource-paths。我用它,例如连接到Siebel服务器。刚刚在我的项目目录中创建了一个resources目录,并在其中复