Hello, I reply this mail just because when I send to the list I receice a reponse from bounces. So it's a test. El Viernes, 27 de Octubre de 2006 02:29, Joachim Schimpf escribió: > Ulrich Scholz wrote: > > Hi everybody, > > > > a question about setof/3: The manual states that the result is sorted but > > I could not find according to which ordering. I guess, it's the standart > > term order. > > Correct, the standard term order, as described in > http://www.eclipse-clp.org/doc/bips/kernel/termcomp/compare-3.html > > > How could an implementation of setof/3 look like that uses an arbitrary, > > i.e., user-supplied ordering? > > Use bagof/3 (or the faster findall/3), and sort the resulting list > afterwards. > > Alternatively, you could take advantage of the fact that the standard order > sorts on the leftmost argument of compound terms first. So if you > construct your result terms such that the leftmost argument is your sorting > key, then the result list will automatically be ordered correctly: > > % sorted alphabetically > ?- setof(X, member(X,[bb,c,aaa]), L). > X = X > L = [aaa, bb, c] > Yes (0.00s cpu) > > % sorted by length first > ?- setof(N-X, (member(X,[bb,c,aaa]),atom_length(X,N)), L). > N = N > X = X > L = [1 - c, 2 - bb, 3 - aaa] > Yes (0.00s cpu) > > > Thank you, > > > > Ulrich > > > > > > BTW, the manual states "This predicate is sensitive to its module context > > (tool predicate, see @/1)". I guess, that sould read "... see @/2)". > > Quite right, thanks for spotting this! > > > -- Joachim > > _______________________________________________ > ECLiPSe-Users mailing list > ECLiPSe-Users_at_crosscoreop.com > http://www.crosscoreop.com/mailman/listinfo/eclipse-usersReceived on Fri Oct 27 2006 - 12:27:41 CEST
This archive was generated by hypermail 2.2.0 : Thu Feb 02 2012 - 02:31:57 CET