Problems with map.



On 9/26/2012 11:17 AM, Christopher Sangwin wrote:
>
> (%i2) map(f,1/2);
>
>                         1
>
> map: improper argument: -
>
>                         2
>
> -- an error. To debug this try: debugmode(true);
>

What result did you want?   f(1)/f(2) ?

The internal operator in 1/2 is 'rat'  which requires 2 integer 
operands.  A special case
could be set to create f(1)/f(2)   which is really f(1) *  f(2)^(-1) in 
this example, but
I'm not sure that map should do that.

Or did you want f(1/2)?

Or now that you have an explanation, is the behavior OK with you?
>
> But
>
> (%i3) atom(1/2);
>
> (%o3)                                false
>
Actually, I think that 1/2 is "a number"  and thus atom(1/2) should be 
true.  But this atom
concept is not very accurately portrayed. Atoms should be 
non-decomposable, except
by nuclear fission..
RJF