在 Prolog 中打乱列表

Joa*_*ira 2 shuffle list prolog

一个简单的问题,如何在 Prolog 中对列表进行洗牌,这A1就是洗牌后的列表?

shuffle([1,1,1,2,3,4],A1),
Run Code Online (Sandbox Code Playgroud)

我尝试了一些我在网上找到的谓词,但它们似乎都不起作用。根据 SWI-Prolog 的说法,也发现了这个,但显然它不再可用。

Tud*_*riu 5

您可以使用random_permutation/2. 在 SWI-Prolog 中可用。

?- random_permutation([1,2,3],L).
L = [1, 3, 2].
Run Code Online (Sandbox Code Playgroud)