问题标签 [frege]
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.
frege - 如何在 Frege 中使用多个内联断言
为了自检示例,我运行了以下代码:
我知道这并不完美(建议非常受欢迎),但当前的问题是,当我将断言的定义放入模块 util.Assertions 时,使用两个断言无法编译
它在我只有一个断言时起作用,因此类本身在 CP 上,并且模块导入原则上起作用。怎么了?
frege - 如何编译整个 Frege 源代码树
按照如何在 Frege 中使用多个内联断言的答案,我学习了如何编译两个 Frege 模块 A 和 B,其中 B 依赖于 A:你必须编译 B。如果给定 -make 选项,编译器会发现 B 依赖于在 A 上,将在源路径(-sp 标志)上找到 A,然后先编译 A,然后编译 B。
但是,我不能只将我关心的所有文件都交给编译器。将 A和B 都提供给编译器失败,对我来说出现“循环依赖”错误。而且我还发现无法为编译器提供目录(它什么也没做)。
看起来我必须知道依赖图的根才能正确编译所有需要编译的文件。但
- 我可能不知道根源。
- 可能有很多。
- 以这种方式进行适当的构建自动化非常困难。
是否有编译器选项的组合,我可以让编译器编译源树中的所有文件?
frege - 是否有用于 Frege JSR223 集成的可下载 jar?
github 上的 frege-scripting 项目包含 JSR223 所需的 ScriptEngineFactory,但它似乎既没有打包在 Frege 语言 jar 本身中,也没有打包在 REPL 或其任何依赖项中。
某处有这样的罐子还是需要额外的构建?
haskell - 为什么 Frege 与 Haskell 中的 ":type null" 不同?
在哈斯克尔:
在弗雷格:
我如何解释这个答案,为什么会有区别?
(来自真实世界的haskell的例子,改编自真实世界的frege git repo)
frege - 弗雷格的评估是否有系统的上限?
出于好奇,我在 Frege 中尝试了这段代码:
不言而喻,3000 万个条目的序列有点傻,我会接受 OOME。我想看看惰性评估是否在这里有所作为。结果是,尽管我所有的 8 个内核都以 100% 的速度耗尽并一直呆在那里,直到我硬杀死了这个过程。
我是否达到了系统的上限?
我应该提到我使用了真实世界的 Haskell 练习中的 mydrop:
haskell - 与 Haskell“readFile”等价的 Frege 是什么?
在为真实世界的 Haskell 代码示例(第 2 章)准备 Frege 等价物时,我找不到
最接近的匹配是什么?
frege - Frege:我可以为递归类型派生“Show”吗?
我正在尝试在 frege 中实现经典的树结构,只要我不使用“派生”,它就可以很好地工作:
给我
这不支持还是我必须以不同的方式声明它?
java - 在 Java 代码中使用 Frege List
我想了解 Frege List 的工作原理以及如何从 Java 中使用它。当我下载 Frege 编译器代码时,我发现很难从 Frege 代码中理解 Frege 列表是什么。
做一些测试,我发现 Frege List 是TList
Java 中类的一个实例,它有一个特殊的方法,称为_Cons()
,它返回一个DCons
对象。DCons
正如预期的那样,是一对,其中该对的第一个元素对应于列表的头部,而第二个元素是尾部,因此是另一个TList
. 在_Cons()
空列表上调用时,返回值为 null。因此,要在 Frege 上实现一个 Java 迭代器TList
,可以这样写:
我的问题是:
- 我的解释
TList
正确吗? - 是否
TListIterator
正确? - 我在哪里可以找到更多关于什么
TList
和在 Frege 编译器源代码中的DList
信息?DCons
他们有记录吗? - 关于 Frege 最佳实践的一个更通用的问题:当您希望 Java 代码使用 Frege 值时,从 Frege 代码返回 Java“标准”对象更好还是直接使用 Java 中的 Frege 类更好?我的观点是前者比后者更容易编写,但转换开销很小。例如,
TListIterator
总是可以通过将Frege转换TList
为 Java来避免 a。LinkedList
java - 如何将 Java 重载构造函数映射到 Frege 函数
Java(不幸的是)支持构造函数和方法重载。例如,HashMap有四个构造函数。在弗雷格我不能这样做:
这不会编译,因为我不能绑定四次“新”。Frege 数据类型中是否可以有四个“Java 构造函数”?
haskell - 弗雷格列表中的长度函数有上限吗?
对于 real-world-frege 项目,我从 real-world-haskell 进行了练习,任务是为列表创建一个长度函数,并将其与内部长度函数进行比较。
我提出的解决方案在https://github.com/Dierk/Real_World_Frege/blob/master/realworld/chapter3/I_Exercise_1.fr
它的牛肉是:
对于 100 万个条目以下的列表,我的和内部长度函数都可以正常工作,在 10 M 时会变得非常慢,并且对于 100 M 似乎根本不会停止。
Frege 的内部长度函数(不是 Haskell 的)似乎有一个低于 1 亿的上限。是这样吗?