有没有办法定义一个行为(或多或少)像这样的谓词:
% nths(?Indices, ?List, ?Nths)
nths([], _, []).
nths([N|Ns], List, [E|Es]) :-
nth0(N, List, E),
nths(Ns, List, Es).
但没有显式循环,也没有 lambda?我有一种感觉,应该可以用maplist
也许,或者findall
,但我想不通......
(当然,这仅适用于作为列表的 List 、整数索引[0, list_length) 以及List的所有Nths成员)
另一方面,这是一个非常简短而明显的定义......