问题标签 [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.
java - 如何让 JVM 在多态方法调用中将 scala.Array[T] 识别为 java 数组 T[]?
问题可以在以下代码中找到:
由于我作为第二个参数传递的是一个 Any 数组,所以这段代码应该调用了 SLF4J 的调试方法
然而
最终被调用。
让我举个例子吧。
当我打电话
它记录
代替
NOTE1:我假设第一个调用将基于scala.Array Scaladoc工作。
表示多态数组。Array[T] 是 Scala 对 Java 的 T[] 的表示。
NOTE2:我的问题的代码可以在https://github.com/alexmsmartins/UsefullScalaStuff/blob/master/src/main/scala/alexmsmartins/log/LoggerWrapper.scala找到
这是我在 Scala 项目中使用的 slf4j 的一个小包装器。
bash - 在 JVM 中运行的 Bash 脚本解释器(Jbash?)
我想知道是否存在仅在 JVM 中运行的 bash shell 脚本解释器(即,不依赖于系统 bash 的“shelling out”。)如果您愿意,可以使用“Jbash”。
许多其他语言(JRuby、Jython 等)都存在这样的解释器。我原以为 bash 脚本也会有这样的解释器,但我还没有找到。
有什么建议吗?
groovy - 在 Groovy 中使用 When 和 Then?
我在几篇 Groovy 文章中看到了在 Groovy 中使用“when”和“then”关键字。其中之一在这里。我搜索了 Groovy Doc,但找不到。那么这些关键字的实际用途是什么?类似于如果/那么?
java - java虚拟方法:特性还是错误?
采取这个基类:
而这个派生类:
目标是只调用 mObj.doSomethingWith(mTheService); 在 mTheService 生效之后(发生在基类中)。问题是它总是在 mObj 线上吐出 NPE。我可以理解为什么会这样,但对我来说这看起来很奇怪。那么这是 DVM 的错误还是功能?JVM怎么样?
compilation - 从三地址码到JVM字节码的代码生成
我正在为 Renjin(JVM 的 R)开发字节码编译器,并且正在尝试将我们的中间三地址码 (TAC) 表示形式转换为字节码。我查阅过的所有关于编译器的教科书都讨论了代码生成期间的寄存器分配,但我无法找到任何资源用于在 JVM 等基于堆栈的虚拟机上生成代码。
简单的 TAC 指令翻译成字节码是微不足道的,但是当涉及到临时指令时我会有点迷茫。有没有人有任何指向描述这一点的资源的指针?
这是一个完整的例子:
原始 R 代码如下所示:
TAC 红外:
(暂时忽略一个事实,即我们不能总是在编译时解决对原语的函数调用)
生成的 JVM 字节码(大致)如下所示:
基本上,在程序的顶部,我已经需要考虑到当我到达 TAC 指令 2 时,我将需要在堆栈的开头使用局部变量 x。我可以手动考虑这一点,但我'在思考通过算法正确地做到这一点时遇到了麻烦。任何指针?
clojure - 如何在命名空间的上下文中评估 clojure 数据结构?
我正在编写一个供内部使用的 clojure 应用程序,并且我希望配置文件也在 clojure 中。我已经定义了一些宏来使编写配置文件更容易,但是当我尝试评估配置文件中的数据时,它找不到我的宏。但是,这在 REPL 中可以正常工作。例如,我正在使用
我收到此错误:
但是,从我的命名空间中的 REPL 运行相同的命令可以正常工作。
scala - 在 Scala 中使用偏函数 - 它是如何工作的?
我是 Scala 的新手,我正在使用 2.9.1,我正在努力了解如何使用部分函数。我对柯里化函数有基本的了解,并且我知道部分函数有点像柯里化函数,它们只是二元或类似的。正如你所知道的那样,我对此有些不满。
似乎在某些情况下,如 XML 过滤,能够使用部分函数会非常有利,所以我希望能更好地理解如何使用它们。
我有一个使用 RewriteRule 结构的函数,但我需要它使用两个参数,而 RewriteRule 结构只需要一个或一个部分函数。我认为这是我认为它有帮助的案例之一。
欢迎任何建议、链接、智慧之言等!
到目前为止的答案非常好,并且已经消除了我的一些基本误解。我认为他们也解释了我在哪里挣扎 - 我认为发布一个更具体的新问题可能会有所帮助,所以我也会这样做。
haskell - Frege 等效于 Haskell 的 getLine 并读取
是否有任何 Frege 等效于 HaskellgetLine
并read
在标准库中解析来自控制台的输入?
目前我正在这样做:
更新:
Frege 已经进化,所以现在我们拥有getLine
标准库本身。至于read
,我们在 String 上有转换方法。现在原来的问题很简单,
有关更多详细信息,请参阅下面的 Ingo 答案。
scala - Scala 和 Clojure 都在一个项目中
我正在寻找这两种语言的多语言编程指南。
我知道它们之间的互操作是可能的,因为它们都运行在同一个 Java VM 上,并且都被编译成相同的字节码。但是有一些麻烦:
(是的,是的,我知道我可以将一种语言的 jar 插入到另一种语言的项目中。)
- 是否有一些库可以让我免于编写样板互操作代码?
- 等等
所以问题是如何在 Scala 和 Clojure 中设置多语言开发?