【发布时间】:2013-10-22 17:41:00
【问题描述】:
我注意到 Rascal 支持大整数。但我找不到无穷大的常数。它们存在吗?如果没有,我建议添加它们,因为有时它们非常有用。目前,我的解决方法是定义类似int pInf = 1024 的内容,但在极端情况下可能会失败。
【问题讨论】:
-
无穷大常数有什么用?
-
我不确定。但是在我的 Lisp 实现中,我想指定 Lisp 函数
list的数量,它接受任意数量的参数。在数量检查中,它应该大于传递给此函数的任何数量的参数,无论多大。 -
处理这种可变性的“流氓”方法是引入代数数据类型,如:
data Arity = inf() | fixed(int size),然后您可以使用模式匹配或is或其他任何方法来处理差异。if (arity is inf) {...}或int foo(fixed(int size)) = ...; int foo(inf()) = ...; -
啊,好主意。没想到。这确实是一个更好的解决方案,以避免依赖于实现。如果您将其放入答案中,我可以选择接受。
-
好酷。我刚刚编辑了我之前的答案。干杯!
标签: rascal