【问题标题】:Executing Mozart-Oz code in command line在命令行中执行 Mozart-Oz 代码
【发布时间】:2015-05-24 13:02:55
【问题描述】:

我正在尝试使用Mozart Oz。 我从源代码伪造下载执行二进制文件:http://sourceforge.net/projects/mozart-oz/

启动 Mozart.app 时,emacs(Mac OS X 的 aquamacs)开始在其中进行编码。

例如,我可以在 Tcl/Tk 浏览器中输入{Browse 'Hello World'} 并执行Oz -> Feed Buffer 得到结果。

那么,我怎样才能像使用 Python 或 Ruby 一样在命令行中构建或执行 Oz 代码?

我在 bin 目录中找到了二进制文件。

/Applications/Mozart2.app/Contents/Resources/bin
    ├── oz
    ├── ozc
    ├── ozemulator
    ├── ozengine
    └── ozwish

但是,当我使用ozc -c hello.oz 执行代码时,出现%** variable Browse not introduced 错误。可能有什么问题?

【问题讨论】:

    标签: oz mozart


    【解决方案1】:

    你必须使用Browser.browse

    实际上,在 oz 中构建应用程序时必须导入/创建每个函数。当你导入 Browser 时,你会得到一个包含 Browser 对象类导出的所有函数的记录。 (见https://mozart.github.io/mozart-v1/doc-1.4.0/browser/node2.html

    因此,您的代码是

    functor
    import
       Browser
    define
       {Browser.browse 'Hello World'}
    end
    

    我应该使用 {Application.exit 0} 退出应用程序,但它给了我一个奇怪的错误... 无论如何,我建议不要使用浏览器。即使在使用交互式解释器时它非常强大,它也很重且有问题。改用 System.showInfo,如果你真的想要一个,构建你自己的 TK 窗口。

    functor
    import
        System
        Application
    define
        {System.showInfo 'Hello World!'}
        {Application.exit 0}
    end
    

    你编译它

    $ ozc -c hello.oz
    

    然后运行它

    $ ozengine hello.ozf
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 2013-05-09
      • 2010-11-18
      • 2012-07-08
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      相关资源
      最近更新 更多