这两个条款之间的区别是什么:
L=[X,H|Y].
append(X,[H|Y],L).
这是我的代码中的一个条款,第一个不起作用,第二个起作用,只是不知道差异。
答案 0 :(得分:1)
表达式[X,H|Y]
表示一个列表,其第一项是X的值,其第二项是H的值,其尾部是Y的值。如果X = 1,H = 2,并且Y = [3,4,5],其值为[1,2,3,4,5]。如果X = [1,2,3],H = [4,5,6],Y = [7,8,9],则其值为[[1,2,3],[4,5, 6],7,8,9]。表达式L=[X,H|Y]
将列表的值绑定到L。
另一方面,谓词append(X,[H|Y],L)
将第一项为H且其尾部为Y的列表附加到列表X,并将结果绑定到L.如果X = 1,则H = 2,并且Y = [3,4,5],结果将是一个错误,因为X不是一个列表。如果X = [1,2,3],H = [4,5,6],Y = [7,8,9],结果将L与值[1,2,3,[ 4,5,6],7,8,9]。