Howdy a142808:
> Jeff said:
>
> REBOL is a free form context sensitive first class
> functional language with prototyped based objects and
> cloning. It offers both static and lexical scoping, ....
>
> >From what I can tell REBOL is quasi-statically scoped. It
> certainly doesn't support `lexical scoping' in the usual
> sense. I don't know if this is a `bug' in the
> implementation or not because there seem to be no formal
> specification of the semantics of the language.
Granted-- it's a little more involved...
> Since it is possible to observe interpreter side effects in
> `functional' code, I'm not sure `functional' is a correct
> description. Or is that a bug in the in the
> implementation?
The Functional Language FAQ puts forth that:
"Functional programming is a style of programming that
emphasizes the evaluation of expressions, rather than
execution of commands. The expressions in these language
are formed by using functions to combine basic values. A
functional language is a language that supports and
encourages programming in a functional style."
Later the FAQ explains:
"The term "purely functional" is often used to describe
languages that perform all their computations via function
application. This is in contrast to languages, such as
Scheme and Standard ML, that are predominantly functional
but also allow `side effects' (computational effects
caused by expression evaluation that persist after the
evaluation is completed)."
REBOL is not purely functional. Neither is the universe,
though. There's plenty of side effects in nature.
> Jeff said:
> REBOL also provides a very simple abstraction of direct
> TCP/IP sockets, fully BSD capable, including razzle
> dazzle multiplexing.
>
> REBOL/core seems to be single threaded. I haven't seen any
> indication that you can use multiple threads or handle
> multiple network connections in parallel, is there any
> `select'-like REBOL function? REBOL output seems to block.
> What do you mean by multiplexing?
>> one-port: open tcp://:1492
>> two-port: open tcp://:1776
>> wait [one-port two-port 1]
|/-\|/-\ == none
-jeff