Frege REPL 中的代码问题
Problems with Code in the Frege REPL
在尝试学习弗雷格时,我从 Dierk's Real World Frege to the online REPL an tried to execute it (see also How to execute a compiled code snipped in Frege online repl) 复制了一些代码。我试过的脚本无法编译:-(
我做错了什么?
以下是无法编译的示例:
println ( 2 *-3 ) -- unlike haskell, this will work!
http://try.frege-lang.org 的在线 REPL 目前基于 Frege V3.23.370-g898bc8c 。 Dierk 的代码示例基于 V3.21.500-g88270a0(可以在 gradle 构建文件中看到)。
Frege 开发人员似乎决定在这些版本之间稍微更改 Frege 语法。结果是您将无法再在在线 REPL 中 运行 这些代码片段。
不可避免的是,在一年多的时间里,一种不断发展的语言(及其库)发生了变化,以至于旧代码将无法再编译。
如果我们能看到一个例子,而不是像 "most" 这样的概括,那就太好了。
下一个最好的办法是在 Dierks 项目中提出一个指向错误的问题。
但最好的办法是努力找出问题所在。这也会加强您的学习过程。
这里有两个可以提供帮助的资源:
https://github.com/Frege/frege/wiki/New-or-Changed-Features -- 每个版本的发行说明,包含版本之间更改内容的摘要,尤其是代码不再编译的原因以及如何更正它。
http://www.frege-lang.org/doc/fregedoc.html -- 库文档。可以解释可能的错误,例如未找到导入或缺少标识符。
去吧,试一试。我相信 Dierk 会很乐意接受拉取请求。
编辑:修复已公布的错误。
错误在:
println ( 2 *-3 )
确实源于句法变化。
就最近而言,要求相邻的运算符至少相隔一个 space。
因此
println (2 * -3)
但是,您在此处收到的错误消息是:
can't resolve `*-`, did you mean `-` perhaps?
这可能触发了它试图将 *-
解释为单个运算符的想法。
ValuesAndVariables1.fr
中的另一个错误确实是初学者的障碍。背景是我们有一个 pi
类型 Double
和一个类型 Float
并且可能有更多类型 class Floating
,所以需要告诉打印哪一个。
以下将起作用:
import Prelude.Math -- unless already imported
println Float.pi
println (pi :: Double)
在尝试学习弗雷格时,我从 Dierk's Real World Frege to the online REPL an tried to execute it (see also How to execute a compiled code snipped in Frege online repl) 复制了一些代码。我试过的脚本无法编译:-(
我做错了什么?
以下是无法编译的示例:
println ( 2 *-3 ) -- unlike haskell, this will work!
http://try.frege-lang.org 的在线 REPL 目前基于 Frege V3.23.370-g898bc8c 。 Dierk 的代码示例基于 V3.21.500-g88270a0(可以在 gradle 构建文件中看到)。
Frege 开发人员似乎决定在这些版本之间稍微更改 Frege 语法。结果是您将无法再在在线 REPL 中 运行 这些代码片段。
不可避免的是,在一年多的时间里,一种不断发展的语言(及其库)发生了变化,以至于旧代码将无法再编译。
如果我们能看到一个例子,而不是像 "most" 这样的概括,那就太好了。
下一个最好的办法是在 Dierks 项目中提出一个指向错误的问题。
但最好的办法是努力找出问题所在。这也会加强您的学习过程。
这里有两个可以提供帮助的资源:
https://github.com/Frege/frege/wiki/New-or-Changed-Features -- 每个版本的发行说明,包含版本之间更改内容的摘要,尤其是代码不再编译的原因以及如何更正它。
http://www.frege-lang.org/doc/fregedoc.html -- 库文档。可以解释可能的错误,例如未找到导入或缺少标识符。
去吧,试一试。我相信 Dierk 会很乐意接受拉取请求。
编辑:修复已公布的错误。
错误在:
println ( 2 *-3 )
确实源于句法变化。 就最近而言,要求相邻的运算符至少相隔一个 space。 因此
println (2 * -3)
但是,您在此处收到的错误消息是:
can't resolve `*-`, did you mean `-` perhaps?
这可能触发了它试图将 *-
解释为单个运算符的想法。
ValuesAndVariables1.fr
中的另一个错误确实是初学者的障碍。背景是我们有一个 pi
类型 Double
和一个类型 Float
并且可能有更多类型 class Floating
,所以需要告诉打印哪一个。
以下将起作用:
import Prelude.Math -- unless already imported
println Float.pi
println (pi :: Double)