让我们从 Prolog 翻译成英文。我们有两个规则:
附加任何List
到的结果[]
是List
.
将 any 附加List
到第一个元素为H
且余数为L1
的列表的结果等于其第一个元素也是H
其余数是附加List
到的结果的列表L1
。
所以,我们要追加[-10,-5,6,7,8]
到[9,2,3,4]
. 附加到的列表不为空,因此我们可以跳过该规则。根据第二条规则,结果具有9
作为第一个元素,然后是附加[-10,-5,6,7,8]
到的结果[2,3,4]
。
所以,我们要追加[-10,-5,6,7,8]
到[2,3,4]
. 附加到的列表不为空,因此我们可以跳过该规则。根据第二条规则,结果具有2
作为第一个元素,然后是附加[-10,-5,6,7,8]
到的结果[3,4]
。
所以,我们要追加[-10,-5,6,7,8]
到[3,4]
. 附加到的列表不为空,因此我们可以跳过该规则。根据第二条规则,结果具有3
作为第一个元素,然后是附加[-10,-5,6,7,8]
到的结果[4]
。
所以,我们要追加[-10,-5,6,7,8]
到[4]
. 附加到的列表不为空,因此我们可以跳过该规则。根据第二条规则,结果具有9
作为第一个元素,然后是附加[-10,-5,6,7,8]
到的结果[]
。
所以,我们要追加[-10,-5,6,7,8]
到[]
. 附加到的列表是空的,所以根据第一条规则,结果是[-10,-5,6,7,8]
.
由于追加[-10,-5,6,7,8]
到的结果[]
是,追加到[-10,-5,6,7,8]
的结果是。[-10,-5,6,7,8]
[4]
[4,-10,-5,6,7,8]
由于追加[-10,-5,6,7,8]
到的结果[4]
是,追加到[4,-10,-5,6,7,8]
的结果是。[-10,-5,6,7,8]
[3,4]
[3,4,-10,-5,6,7,8]
由于追加[-10,-5,6,7,8]
到的结果[3,4]
是,追加到[3,4,-10,-5,6,7,8]
的结果是。[-10,-5,6,7,8]
[2,3,4]
[2,3,4,-10,-5,6,7,8]
由于追加[-10,-5,6,7,8]
到的结果[2,3,4]
是,追加到[2,3,4,-10,-5,6,7,8]
的结果是。[-10,-5,6,7,8]
[9,2,3,4]
[9,2,3,4,-10,-5,6,7,8]