4

我正在尝试使用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错误。可能有什么问题?

4

1 回答 1

7

你必须使用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
于 2015-03-23T09:40:54.313 回答