The Rebol type system
[1/6] from: ammonjohnson::yahoo::com at: 7-Nov-2001 15:10
<snip...>
> I'd love to be able to create my own values of type OP! (then we'd
> *really* have a dialecting language ;-), but are there others that
> you'd like to be able to instantiate?
I would love to be able to create a Native! Just think, if you could create
a Native! you could create a self extracting/unencoding script that, because
the user can't see what is in the text (it being a bunch of jiberish), &
PROBEing, or SOURCEing the function returns Native! no one can steal your
code. ;-)
My 2¢
Ammon
[2/6] from: koopmans:itr:ing:nl at: 7-Nov-2001 13:08
Hi,
What *is* the Rebol type system?
Why can't I make new types?
Why can't I instantiate some types?
Why.....?
--Maarten
[3/6] from: joel:neely:fedex at: 7-Nov-2001 0:43
Hi, Maarten,
Maarten Koopmans wrote:
> Hi,
>
> What *is* the Rebol type system?
>
One of the profound mysteries of the universe, ranking just after
quantum gravitation and hanging chads.
> Why can't I make new types?
>
Because your name isn't Carl. And you also can't tear that little
tag off of your sofa cushions!
> Why can't I instantiate some types?
>
See previous answer.
> Why.....?
>
Because.
(Sorry, I couldn't help myself... ;-)
Seriously, I could offer the standard platitudes about a datatype
being a class of values and the set of operations that can be
applied to them, but I suspect that any real answer would have to
come from comments by RT staff (anybody listening, hint hint...)
or with the publication of documentation of "inner REBOL" (for
which I'm devoutly wishing but not holding my breath).
Out of curiousity, are you currently using any language that *does*
allow you to create your own types?
I'd love to be able to create my own values of type OP! (then we'd
*really* have a dialecting language ;-), but are there others that
you'd like to be able to instantiate?
-jn-
--
Unix is user-friendly, its just picky about who it's friends with.
-- Douglas O'Neal
joel[dot[FIX[PUNCTUATION[neely[at[fedex[dot[com
[4/6] from: media:quazart at: 7-Nov-2001 7:58
aren't the types internal to rebol?
you would have to get access to the REBOL dialect parser itself in order to
handle new types of data arrangement transparently.
Unless someone else has some enlightening information, That's what I
understand of the datatype system...
I do wish it was possible to supply a user hook when Rebol handles code, so
that we could do such things as add new datatypes at run-time...
-MAx
[5/6] from: koopmans:itr:ing:nl at: 7-Nov-2001 14:01
Hi Joel,
datatype! types (so I can make op2! types).
op! types
the next 500 types I can find a use for.
Yes there are languages that allow you this that I use sometimes:
- Haskell
- Objective Caml (a ML dialect)
--Maarten
On Wednesday 07 November 2001 07:43, you wrote:
[6/6] from: joel:neely:fedex at: 7-Nov-2001 8:57
Hi, Maarten,
Maarten Koopmans wrote:
> Hi Joel,
>
> datatype! types (so I can make op2! types).
> op! types
>
Yes, I'd sure like to have a MAKE OP! option. One might imagine
that it would require a two-argument function (which could be
checked at definition time) and create a new binary operator
so that
hypotenuse: make op! function [x [number!] y [number!]] [
square-root x * x + (y * y)
]
would allow one subsequently to write
z: 3 hypotenuse 4
I have no idea how hard this would be for RT, but it appears that
the lexical part of the work is already done...
>> alias '* "times"
== times
>> 3 times 4
== 12
> the next 500 types I can find a use for.
>
> Yes there are languages that allow you this that I use sometimes:
> - Haskell
> - Objective Caml (a ML dialect)
>
Right! I was expecting to see some thing in the Haskell/ML arena.
(Hardly garden-variety, J. Random Programmer languages, though!)
I wonder if there are enough bits in the type field to support very
many additions... (ONLY KIDDING! ;-)
-jn-
--
This sentence contradicts itself -- no actually it doesn't.
-- Doug Hofstadter
joel<dot>neely<at>fedex<dot>com