首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Frege REPL中的代码问题

Frege REPL中的代码问题
EN

Stack Overflow用户
提问于 2015-11-26 20:23:14
回答 2查看 114关注 0票数 3

在尝试学习Frege时,我将一些代码从迪尔克的真实世界复制到在线REPL,并尝试执行它(参见如何执行Frege online repl中的编译代码)。我尝试过的脚本没有编译:

我做错了什么?

以下是未编译的示例:

代码语言:javascript
复制
println ( 2 *-3 )       -- unlike haskell, this will work!

和整个ValuesAndVariables.fr代码

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-26 21:51:19

在一年多的时间里,不可避免的是,一种不断发展的语言(及其库)会发生变化,从而使旧代码不再编译。

如果我们能看到一个例子,而不是像“大多数”这样的概括,那就太好了。

其次,最好是在Dierks项目中有一个指向错误的问题。

但最好的办法是找出问题所在。这也会加强你的学习过程。

以下是两个可能有帮助的资源:

https://github.com/Frege/frege/wiki/New-or-Changed-Features --每个版本的发行说明都包含了在不同版本之间更改的内容的摘要,特别是代码不再编译的原因,以及如何修改代码。

http://www.frege-lang.org/doc/fregedoc.html --图书馆的文档。可能会解释可能的错误,如导入未找到,或缺少标识符。

去,试试看。我相信迪尔克会很乐意接受请求的。

编辑:修复已宣布的错误。

以下错误:

代码语言:javascript
复制
println ( 2 *-3 ) 

确实来源于句法上的变化。从最近开始,要求相邻的操作符至少用一个空格隔开。因此

代码语言:javascript
复制
println (2 * -3)

但是,您在这里得到的错误消息是:

代码语言:javascript
复制
can't resolve `*-`, did you mean `-` perhaps?

这可能引发了这样一种想法,即它试图将*-解释为单个操作符。

ValuesAndVariables1.fr中的另一个错误确实是初学者的节目停止。背景是,我们有一个pi,它的类型是Double,另一个是Float类型,可能还有更多类型的Floating,所以我们需要知道要打印哪一个。下列措施将起作用:

代码语言:javascript
复制
import Prelude.Math    -- unless already imported
println Float.pi
println (pi :: Double)
票数 3
EN

Stack Overflow用户

发布于 2015-11-26 20:28:51

http://try.frege-lang.org的在线REPL目前基于FregeV3.23.370-g898bc8c。Dierk的代码示例基于V3.21.500-g88270a0 (可以在gradle构建文件中看到)。

看起来,Frege开发人员决定在这些版本之间稍微修改一下Frege语法。THe的结果是,您将无法在在线REPL中运行这些代码段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33946464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档