Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] Re: Updates to hof script

From: jan:skibinski:sympatico:ca at: 16-Nov-2002 11:23

Hi Dick, [reffy--ulrich--net] wrote:
> Hi Jan, > Accordingly, the following application is legal: > map-2 :+ [1 2 3] [1 1 1] > == [2 3 4] > > Now, if you look again at the original definition: > > > Mapping two series via binary function: > > ((a -+ b -+ c) -+ [a] -+ [b] -+ [c]) > > How would you note that the result of (adding two decimals) yields a decimal > unless, the operation overflows, and the result is coerced to a float instead of a decimal? >
For all I know a decimal in Rebol is a float. If you meant integer, then yes I cannot predict what sort of casting Rebol will do during its runtime. But since certain objects cannot be converted then Rebol will complain - sometimes very very late, somewhere deeply inside some loop. My type checker could eliminate some classes of such problems. Compared to Rebol, Haskell would do a thorough static typechecking first - discovering such bugs and not even letting me start the computation. But this is not the point. I am not trying to predict what Rebol will in fact do during runtime, I only wish to provide tools that suppose to help us with documenting complex functions, and to let us check validities of some classes of expressions before they are even executed. Look, I am not trying to impose any restrictions on Rebol - it's fine as it is with all this casting, mixed type arithmetic, mixed types inside blocks, etc. But when I write my own function that accepts an array of specific types, such as decimals I want to document it as such and tell the user up front that they should better use decimals, not the strings or a mixture of both. If my intention would be to accept any mixed array, then I would document it as such, [any]. Typeless systems of Smalltalk kind, or weakly (dynamicly) typed systems such as Rebol are the blessing and the curse - compared to the strong static type systems. I've been on both sides of the border, and I know all about disadvantages and advantages of such languages. As I said, Rebol is fine for what it supposed to be. It provides freedom of choices, of creating little universes, such as dialects, to impose extra rules of the game. All the best, Jan