问题标签 [jvm-languages]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1419 浏览

optimization - 在 JVM 中运行时在 Scala 中使用递归

从本网站和网络上的其他地方搜索,JVM 不支持尾调用优化。因此,这是否意味着如果要在 JVM 上运行,不应该编写诸如以下可能在非常大的输入列表上运行的尾递归 Scala 代码?

Martin Odersky 的 Scala by Example 包含以下段落,这似乎表明存在适合递归的情况或其他环境:

原则上,尾调用总是可以重用调用函数的栈帧。但是,一些运行时环境(例如 Java VM)缺乏使堆栈帧重用于尾调用高效的原语。因此,生产质量的 Scala 实现只需要重用直接尾递归函数的堆栈帧,该函数的最后一个操作是调用自身。其他尾调用也可能会被优化,但不应依赖于跨实现。

谁能解释一下这段中间的两句话是什么意思?

谢谢!

0 投票
4 回答
1499 浏览

functional-programming - 懒惰序列中“Lose your head”的解释

在 Clojure 编程语言中,为什么这段代码能顺利通过?

虽然这个失败:

我知道这是关于“失去理智”的建议,但请您向我解释一下吗?我还不能消化它。

更新:
很难选择正确的答案,两个答案非常有用。
注意:代码片段来自“The Joy of Clojure”。

0 投票
3 回答
1259 浏览

java - 反编译JVM语言

是否可以将诸如 Groovy、Scala 之类的 JVM 语言反编译为其初始形式?

如果我尝试反编译一个 4 行 Groovy 类,我会得到大约 20 行反编译的 Java 代码。

这更像是一个理论问题而不是实际问题,因为市场上没有这样的反编译器(我不知道)。

谢谢。

0 投票
2 回答
769 浏览

grails - Grails应用程序中Groovy代码的编译

当我通过它为我的 Grails 应用程序构建一个战争文件时,grails war它仍然包含一些 groovy 文件。

将war-filed部署在应用服务器上后,这些文件何时以及如何编译为java字节码?

0 投票
2 回答
328 浏览

groovy - Groovy 实现细节

我在哪里可以找到有关如何在后台实现 Groovy 的更多详细信息?除了源代码,是否有好的论文、博客、视频、幻灯片等讨论实现细节?

0 投票
4 回答
1878 浏览

scala - 哪些 JVM 功能语言得到很好的 IDE 支持?(IDE:IDEA、Netbeans、Eclipse 或类似的)

我花了很多时间寻找一种可以无缝访问 Java 遗留代码(Weka 代码)的函数式语言。导入的 Java 类方法的自动完成将非常好。我将介绍我的印象,如果我错了,请纠正我。

Yeti对我​​很有吸引力,因为它简单且类似于 ML,但我无法为它设置一个好的 IDE。我也不知道语言本身是否已经可以在现实生活中使用。

GroovyJRubyJython看起来非常成熟,但并不是真正的功能。 Scala是成熟的,但也是面向对象的,至少在 Netbeans(如果我没记错的话,还有 Eclipse)上它是错误的。

OCaML-Java ”也是面向对象的,还没有准备好使用(3 或 4 个单独的项目)。我想在 IDE 中它甚至更难以使用。

贾斯凯尔似乎已经死了。

Clojure看起来很成熟,并且在 Intellij IDEA(La Clojure 插件)中运行良好,但我不确定我是否想在编码时每行编写超过 2 个括号。

SISCABCL我没试过。我认为没有IDE支持。

CAL(或 Quark ... Blah ...)语言通向一个 SAP 站点,之后我对功能性 JVM 语言的耐心搜索结束了。

有类似的问题,但并不全面。例如: 哪种函数式编程语言在 Eclipse 中提供最好的支持?

是否缺少一些能够直接调用 java 类的 JVM 功能语言?如果Yeti像Clojure (在 IDEA 中)那样支持 IDE ,那对我来说将是完美的。

谢谢

编辑 - - - - - - - - - - - - - - - - - -

我可以在 Intellij IDEA 中使用 Clojure+Scala。互操作性示例:

斯卡拉代码

Clojure 代码

壮观!

0 投票
3 回答
204 浏览

java - 解释 Java 的脚本引擎

我记得遇到了一个开源项目,该项目构建了一个解释 Java 的 Java 脚本引擎(不,不是 Rhino,这是用于 JavaScript,它运行 Java)。如果您遇到过该项目,请分享链接。

(当然,谷歌搜索 Java 和脚本的组合会返回所有 JavaScript 结果,唉,这不是我要找的该死的谷歌!!!)

0 投票
2 回答
193 浏览

java - 我应该使用哪种基于 JVM 的语言将一种类型映射到另一种类型?

我目前正在使用 Java 编写一个在两个应用程序之间执行 EAI 的程序。HL7 附带一个应用程序,我使用 HAPI 对其进行解析。所以我得到了一个Java对象结构。我想将此结构转换为我自己的结构,在完成一些其他工作后,我想用它来生成带有 JAXB 的 XML 文件。

在我看来,我目前的解决方案不是很好,因为源代码变得非常复杂:

哪种语言是进行此类类型映射的合适语言?( http://en.wikipedia.org/wiki/List_of_JVM_languages ) 我认为 Java 不是最好的语言。我没有太多时间学习,所以我需要一门易于学习且入门率低的语言。我已经有一些函数式语言 Haskell 和 F# 的经验。一开始我认为 Groovy 会是一门好语言,但后来我发现其他意见建议使用 Scala。

您建议使用哪种语言进行此类类型映射?

0 投票
1 回答
1152 浏览

groovy - Groovy 如何处理闭包范围和递归?

我有一个构建树的递归 Python 函数,我正在尝试将其转换为 Groovy。

这是Python版本...

这是 get_tree(1) 的输出...

这是我尝试将其转换为 Groovy 闭包的尝试...

但这不起作用 - 这就是它返回的内容......

那些“这个收藏”是关于什么的?

我对 Groovy 只是粗略的了解,我怀疑这与 Groovy 如何处理递归和闭包范围有关。

请赐教:)

0 投票
1 回答
1116 浏览

python - 在 .py 文件上运行 Jython 何时会生成 .class 文件?

我刚开始玩 Jython,有时在 .py 文件上运行 jython 会生成一个 .class 文件,但这并不总是发生。

起初我认为触发因素是您必须在 .py 文件中定义一个 Python 类,但显然即使在那时也不总是生成一个 .class 文件。

触发类文件的机制是什么?

谢谢。