On Sun, Jan 11, 2009 at 8:44 PM, Tim Sweeney <[email protected]> wrote:
> As in a current language, division could take a pair of rational numbers and 
> return an option type containing a rational number, and the caller would be 
> responsible for explicitly handling both cases of the result.  You could 
> write this as:
>
>   divide(numerator:Rational,denominator:Rational):Maybe(Rational)
>
> Or, if the type system includes a feature equivalent to intersections and 
> complements, it could take a pair of a rational number and a non-zero 
> rational number, and return a rational number.  You might write this as:
>
>   divide(numerator:Rational,denominator:Rational!=0):Rational

Thanks Tim, that helps a lot. Yes, I could see how one could learn to
program in this way.

Jonathan & Swaroop, what are your current plans for division?


> P.S. Monads are a great idea for expressing operations analogous to iterators 
> and database queries within a pure functional language.  The bad idea in 
> Haskell was applying them to general imperative programing a la Haskell IO/ST 
> monads.

Tim, could you elaborate on this? I've always found Monads hard to
understand. Shifting to this other context might help tremendously.
Thanks.

-- 
Text by me above is hereby placed in the public domain

    Cheers,
    --MarkM
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to