Prolog附加谓词问题

时间:2019-03-04 03:02:48

标签: prolog

我很难理解为什么这两个列表没有使用附加谓词串联。我只提供列表作为append谓词的前两个参数,并希望在第三个参数中获得级联列表,但是由于某种原因它未能统一。下面是添加失败的痕迹。知道是什么原因造成的吗?

42 5调用:append([next(state(2,not_accepting),state(3,not_accepting),letter1),next(state(4,not_accepting),state(5,not_accepting),letter2)| next(状态(3,未接受),状态(4,未接受),ε)],[下一个(状态(6,未接受),状态(7,未接受),字母3),下一个(状态(8,未接受),状态(9) ,not_accepting),letter4)| next(state(7,not_accepting),state(8,not_accepting),epsilon)],_ 1609)吗?

42 5失败:append([next(state(2,not_accepting),state(3,not_accepting),letter1),next(state(4,not_accepting),state(5,not_accepting),letter2)| next(状态(3,未接受),状态(4,未接受),ε)], [next(state(6,not_accepting),state(7,not_accepting),letter3),next(state(8,not_accepting),state(9,not_accepting),letter4)| next(state(7,not_accepting),state( 8,not_accepting),epsilon)],_ 1597)吗?

更新:我解决了这个问题。在某些情况下,我将列表与列表连接在一起,而在其他情况下,我将列表与元素连接在一起。尽管我相信在大多数情况下append谓词仍然可以将元素作为其第二个参数使用,但是一旦将其更改为一个元素的列表,append谓词便会出于某种原因起作用。

0 个答案:

没有答案