【问题标题】:How to execute a compiled code snipped in Frege online repl如何在 Frege 在线 repl 中执行已编译的代码片段
【发布时间】:2015-11-25 20:38:56
【问题描述】:

好吧,我猜这是一个愚蠢的初学者问题:

我尝试通过在线repl学习弗雷格。为此,我认为将代码示例从Dierk's Real World Frege 粘贴到repl 的右上方窗口是一个好主意,按编译并...?如何启动此代码?

【问题讨论】:

    标签: frege


    【解决方案1】:

    我想我自己找到了部分答案:

    命令行中的:java 命令显示生成的代码。在这段代码中,可以看到编译后的模块是自动导入的,所以我们不必引用它。

    现在,如果我们从 repl 中获取 HelloWorld 示例,只需键入即可执行

    frege> main
    

    进入左侧窗口。

    Dierk 在他的例子中使用了语法

    main _ = do
    

    如果我们现在输入

    frege> main
    

    我们只得到

    :: a -> IO ()
    

    作为输出。但是如果我们输入

    frege> main "something"
    

    repl 给出了预期的输出。虽然我仍然不知道发生了什么,但这有助于我接下来的步骤:-)

    【讨论】:

    • 确实!为了与 Java 兼容,“main”可以声明为 [String] -> IO (),为了与 Haskell 兼容,它可以只是 IO ()。取决于你调用 main.
    • 为避免混淆,请遵守以下1.) 每次使用不同的模块名称,或使用:reset 命令清除旧的东西。 2.) 不要使用不合格的模块名称,它们可能会出现一些问题(由于 JVM 限制)。
    • 你说的完全正确。模块和定义会自动加载到左侧的 REPL 中(事实上,它们都共享同一个会话)。 “运行”按钮肯定会让模块更容易。
    猜你喜欢
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 2020-10-19
    • 2015-03-14
    • 1970-01-01
    • 2015-05-26
    • 2022-07-13
    • 1970-01-01
    相关资源
    最近更新 更多