Hi,

While playing with prime numbers to understand facade sets in Sage, I 
noticed the following surprising behavior:

sage: P = Primes() ; P
Set of all prime numbers: 2, 3, 5, 7, ...
sage: P.facade_for()
(Integer Ring,)
sage: P(4)
4
sage: P(4) in P
False


The culprit is _element_constructor_:

sage: P._element_constructor_(4)
4


Actually, for any integer n, P(n) returns n. On the contratry the behavior 
of PrimeNumbers_Facade (used by Sets().example("facade") is more 
satisfactory:

sage: PP = Sets().example("facade") ; PP
Set of prime numbers (facade implementation)
sage: PP.facade_for()
(Integer Ring,)
sage: PP(4)
Traceback (most recent call last):
...
ValueError: 4 is not a prime number
sage: 4 in PP
False

Is there any reason for the above behavior of Primes() ? (Maybe I am 
missing something...)

Eric.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to