|
|
1
4
你还需要Scheme布尔值
因此,我的主张是: 不 ,这个模糊的Scheme子集和你定义的纯Prolog在表达力上没有差距。我的论点(不是证明)是有建设性的,通过将列表交集的Scheme代码从 this answer Prolog。 具体来说,这:
变为:
这个:
变为:
请注意,嵌套表达式需要取消嵌套,在除最简单的情况外的所有情况下,通过定义辅助Prolog谓词,这是最简单的。这不会非线性地增加代码大小。 这些定义使用以下标准Scheme构造的翻译:
从一个简单的值中获得一些支持性的东西
这就是你需要的所有内部不纯、外部纯粹的Prolog支持:
我叫这个
测验:
|
|
|
2
2
只是
证明:
This answer
包含用于Scheme表达式的计算器,
编辑
这延伸了
这延伸了
|
|
3
1
如果你采取一个纯粹的计划。也许纯Prolog就足够了。Pure Scheme将是具有某种严格的按值调用求值策略的lambda表达式。因此,我们可以在Prolog中实现纯Scheme,如下所示,借鉴 deBruijn indexes :
如果你稍微改变一下表达方式,我想你可以去掉割伤。也许通过皮亚诺公理做必要的算术。瞧,你在纯Prolog中得到了纯Scheme。 这是一个示例查询,SUCC和ZERO来自 here :
|