The algebra is full of examples where things work by a sheer amount of
luck. Consider the function rightPower in functor MonadWithUnit:

      rightPower(a: %,n: NonNegativeInteger) ==
        zero? n => 1
        res := 1
        for i in 1..n repeat res := res * a
        res

What should be the type of constant 1 selected at the assignment

        res := 1

and why?

There are three candidates in in scope:

     1: %
     1: NonNegativeInteger
     1: Integer

Currently, all this works mostly by luck.

The fix is to write

        res: % := 1

or 

        res := 1@%

or

        res := 1$%


-- Gaby


------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to