问题标签 [oz]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oz - 对 Mozart/Oz 编程语言的看法?
我意识到 Oz 是一种相当晦涩的语言。我第一次听说它是在Programming Language Shootout中。然后我找到了这篇 Wikipedia 文章,其中指出Mozart/Oz支持 8 种不同的范式。
所以我试了一下。有很多文档,除了我发现它非常混乱和缺乏。我找不到任何书籍或其他文档,也找不到几个例子。此外,它似乎与我不太习惯的 Emacs 紧密集成。
你对这种编程语言有什么看法:这完全是浪费时间吗?或者有人可以指点我一些好的资源等吗?
另外,我不想使用 Emacs。我是否有任何其他选项,例如交互式解释器或正常的编译运行周期?
oz - 如何在 Oz 中将整数转换为列表,反之亦然?
如何将整数转换为列表并返回Oz?我需要取一个数字321
并将其反转为123
.
Oz 中的 Reverse 函数仅适用于列表,因此我想将 321 转换为 [3 2 1],将其反转,然后将 [1 2 3] 转换回 123。这可以在 Oz 中完成吗?
functional-programming - Oz 中的尾递归优化
在Oz 教程中关于函数的章节中,它说:
类似于惰性函数式语言 Oz 允许某些形式的尾递归优化,这些优化在某些严格的函数式语言中找不到,包括标准 ML、Scheme 和并发函数式语言 Erlang。但是,Oz 中的标准函数定义并不懒惰。
然后继续显示以下函数,该函数在Oz中是尾递归的:
它的作用是将空列表映射到空列表和非空列表,映射到将函数应用于其头部的结果,然后将其添加到尾部F
调用的结果中。Map
在其他语言中,这不会是尾递归,因为最后一个操作是前置,而不是对Map
.
所以我的问题是:如果“Oz 中的标准函数定义不是惰性的”,那么 Oz 做了什么,像 Scheme 或 Erlang 这样的语言不能(或不会?)能够为这个函数执行尾递归优化?Oz 中的尾递归函数究竟是什么时候?
oz - 将列表转换为 Oz 中的字符串?
如何将列表转换为Oz中的字符串?
我有一个需要转换为字符串的字符列表,但在 Oz 文档中没有看到任何连接运算符。
oz - 然后是 Oz 关键字
我正在尝试编写分词器,但出现解析错误:
这是代码,我用 %=ERROR=% 标记了第 15 行和第 36 列
知道我做错了什么吗?
oz - 有新版本的莫扎特/盎司吗?
想知道是否有新版本的 mozart/oz 目前是 1.4。那是在 2008 年。一定有进步。
constraints - 如何在 Mozart/Oz 中创建非数字约束?
我想实现一个变量域为非数字的 CSP(类似于 [lisa ann mary joanna] )。有没有办法在 Mozart/Oz 中实现这一点?
function - 在 Mozart Oz 中使用相同的代码时,函数和过程的行为会有所不同吗?
我尝试使用 2 种方法在 Oz 中打印出斐波那契数列:使用 Emac 作为编辑器的函数和过程。程序在这里:
和功能:
问题是唯一的程序“循环”有效。结果是:
函数“Loo”没有,它会抛出一些难以理解的错误:
我仍然不知道为什么。我认为函数和过程在 OZ 中具有类似的效果。
constraints - 在 Mozart/Oz 中检查变量元组是否不能被进一步约束
问候,
这个想法最好用一个例子来说明:
假设我们有一个向量vec(a:{FD.int 1#100} b:{FD.int 1#100} c:{FD.int 1#100})
。我希望能够向该向量添加约束,直到我添加到它的每个附加约束都不会添加任何更多信息,例如不添加约束vec.a
,vec.b
以及vec.c
任何进一步的信息。
有可能在莫扎特/奥兹中做到吗?
我愿意这样想。
在一个循环中:
- 访问约束存储,
- 检查是否改变
- 如果没有变化则终止。