如何在 Mozart/Oz 中创建非数字约束?
我想实现一个变量域为非数字的 CSP(类似于 [lisa ann mary joanna] )。在《莫扎特/奥兹国》中有没有办法实现这一点?
I want to implement a CSP with the variables' domain being non-numeric (something like [lisa ann mary joanna] ). Is there a way to achieve this in Mozart/Oz?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 C++ 中实现语言扩展之类的东西也许是可能的,但在语言本身内,这是不可能的。
唯一内置的约束类型是有限域约束(非负整数)、有限集约束(非负整数集合域上的约束)和记录约束。
也许您可以使用整数常量来模拟您的问题,例如,
如果您不想使用有限域,则可以使用更一般的逻辑编程思想。您可以为变量的不同可能值创建选择点,例如:
也可以使用非静态已知数量的值来执行此操作 组合器。
It might be possible to implement such a thing as a language extension in C++, but within the language itself, it is not possible.
The only built-in types of constraints are finite domain constraints (non-negative integers), finite set constraints (constraints on the domain of sets of non-negative ints) and record constraints.
Maybe you can use integer constants to model your problem, e.g.
If you don't want to work with finite domains, there is the more general idea of logic programming. You can create choice points for different possible values of a variable, e.g.:
It is also possible to do that with a not statically known number of values, using Combinators.