shithub: pprolog

Download patch

ref: a40a18fc0181b2b0c59a20dcd89bee7b38d63e40
parent: 81fa4d4a176b5e330ffe20b2ed9f92b10ffc5ba9
author: Peter Mikkelsen <[email protected]>
date: Sun Jul 11 14:53:02 EDT 2021

Using member and then cut always picks the first element anyways, so just pick it with = instead

--- a/stdlib.pl
+++ b/stdlib.pl
@@ -264,9 +264,7 @@
 	bagof_loop(Witness, S, Instances).
 
 bagof_loop(Witness, S, Instances) :-
-	S \== [],
-	member(W+T, S),
-	!,
+	[W+T|_] = S,
 	bagof_wt_list(S, W+T, WT_list),
 	bagof_split(WT_list, W_list, T_list),
 	( bagof_unify_list(Witness, W_list), Instances = T_list