首页 > DCG的额外参数,如N:s --> a(N), b(N), c(N). 是怎么回事?

DCG的额外参数,如N:s --> a(N), b(N), c(N). 是怎么回事?

DCG的额外参数,如N:s --> a(N), b(N), c(N). 是怎么回事?prolog自动枚举N测试么,N是哪来的?出自 http://dingo.sbs.arizona.edu/~sandiway/ling538-12/lecture15.pdf


原来是根据匹配过程反推出来的,通过和解析序列的合一。
DCG=CFG+变量绑定。CFG可以将整体分为部分,解析部分时就可以取得“上下文同步变量”。因为解析是独立的,并不依赖于变量,所以直接可得到结果和变量绑定。这是就可尝试下一部分并附加了变量同步约束。
原来被函数式思维习惯局限了,没有发现这个变量在第一部分解析时是Out,之后才是In。

【热门文章】
【热门文章】