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