[PEAK] issues while porting priority_methods to use peak.rules.predicates.priority

Christoph Zwerschke cito at online.de
Tue Aug 17 18:58:43 EDT 2010

Am 17.08.2010 23:21 schrieb Alberto Valverde:
> Is there any way to tell peak.rules to consider that a "priority" is
> always implied by any other criterion so the fact that it is present
> in a predicate doesn't raise the predicate's selectiveness? (does
> that make sense?)

Strangely, even when I add priorities everywhere, I still get the 
AmbiguousMethods error, is this a bug?

from peak.rules import value
from peak.rules.predicates import priority

f = lambda n, m: 0
f1, f2, f3 = value(1), value(2), value(3)

when(f, "n==5")(f1)
when(f, "m==5")(f2)
when(f, "n==5 and m==5")(f3)

print f(5,5) # works, returns 3

when(f, "n==5 and priority(1)")(f1)
when(f, "m==5 and priority(1)")(f2)
when(f, "n==5 and m==5 and priority(1)")(f3)

print f(5,5) # ambiguous

-- Christoph

More information about the PEAK mailing list