【问题标题】:Mapping Java Array to Frege将 Java 数组映射到 Frege
【发布时间】:2015-10-29 23:06:38
【问题描述】:

假设我想映射 Java 代码:

package mypackage;

class A {
    public String[] values() {
       return new String[]{"one", "two"};
    }
}

致弗雷格的对应物:

data AA = pure native mypackage.A where
    native values :: AA -> [String]

目前弗雷格抱怨:

error: incompatible types: String[] cannot be converted to TList

如何将 Java 数组映射到 Frege?

【问题讨论】:

  • 不仅弗雷格抱怨——Java 代码也无效。具有讽刺意味的是出于同样的原因。数组和列表是不同的类型……
  • 我的错误。我没有复制/粘贴。我的意思是一个数组。感谢 Ingo 修复示例 :)

标签: java arrays frege


【解决方案1】:

消息实际上来自 Java 编译器。

Java数组对应的Frege类型

Foo[]

JArray Bar

其中Bar 是与Foo 对应的Frege 类型。

所以,在你的情况下应该是

JArray String

请注意,从弗雷格的角度来看,这是一个不可变数组。 如果你想要一个可变数组,请使用

Mutable s (JArray String)

但是,当然,它只能用于 ST monad。

这里是相关在线文档的链接:http://www.frege-lang.org/doc/frege/prelude/PreludeArrays.html 因为这是 Prelude 的一部分,所以您无需导入任何内容即可使用它。

【讨论】:

    猜你喜欢
    • 2016-02-12
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多