我正在尝试用swi-prolog编写一个数组检索程序。使用下面打印的当前代码,我可以检索给定索引处的元素,但我也希望能够检索给定元素的索引。
aget([_|X],Y,Z) :- Y \= 0, Y2 is (Y-1), aget(X,Y2,Z).
aget([W|_],Y,Z) :- Y = 0, Z is W.
示例1: aget( 9 ,8,7,6,5,1,N) {检索索引1处的元素8}输出:n=9。{正确}
示例2: aget(9,8,7,6,5,N,7) {检索元素7的索引2}输出: false {不正确}
据我所知,swi-prolog将以这种方式工作,几乎不需要额外的编程。所以很
在某些语言中,如果函数返回一个数组,则与将数组存储在变量中然后检索单个元素相反,如下所示:
var someValues = getSomeValues();
var firstElement = someValues[0];
您可以在函数调用后直接使用数组索引表示法来检索返回数组的元素,如下所示:
var firstElement = getSomeValues()[0];
这个结构或语法是什么?它有什么特别的名字吗?