我正试着用莫扎特的奥兹。我从源forge下载执行二进制文件: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
错误。可能出了什么问题?
您必须使用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