r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Rebol School] Rebol School

kib2
8-Feb-2009
[1735]
Geomol: not as much as Carl !
Steeve
8-Feb-2009
[1736]
Kib because the input of reduce is a block
Anton
8-Feb-2009
[1737x2]
Try this:
	reduce ['print join "bon" "jour"]
That is simply how reduce works. If you want a single value output, 
then use DO, which returns the last evalated value in the block.
	do ['a]
kib2
8-Feb-2009
[1739x2]
Anton: funny
in fact it's logical : everything is a block.
Henrik
8-Feb-2009
[1741]
REDUCE is one of several block manipulation functions. It evaluates 
anything that can be evaluated inside a block.
Steeve
8-Feb-2009
[1742x2]
even, you can do 
>> reduce 'a
ahahah
Henrik
8-Feb-2009
[1744]
REDUCE is not restricted to blocks.
Anton
8-Feb-2009
[1745]
Yes, if you type something in the console, eg:

	print 1 + 2


you can imagine that it takes the string "print 1 + 2", LOADS it 
into a block, [print 1 + 2], then DOes it.
kib2
8-Feb-2009
[1746]
Steeve: yes, i've tried, but it's limited to the word behind reduce 
then ?
Steeve
8-Feb-2009
[1747]
not now, but in the past, it was
Anton
8-Feb-2009
[1748]
DO is like REDUCE, in that it evaluates every item in the block, 
except DO does not create and store results in a new block - it just 
returns the last value.
Steeve
8-Feb-2009
[1749]
yes Kib, blocks are mainly used to pass several value
kib2
8-Feb-2009
[1750]
understood, now the question is what we cannot do in Rebol ?!
Anton
8-Feb-2009
[1751x2]
You can't really say that in rebol everything is a block, but you 
can say everything is *in* a block. Most rebol code is found in blocks. 
Blocks rule as the container of choice in the rebol universe!
What we cannot do in rebol:
Steeve
8-Feb-2009
[1753]
i will say, what we cannot do without pain. All is possible but some 
are painfull
Anton
8-Feb-2009
[1754]
- Create references to parts of datatypes. Eg. Make a variable which 
aliases the y component of a pair!
Steeve
8-Feb-2009
[1755]
Hum, we can with tiny functions accessors, the drawback is that it's 
more slow than a real reference
Anton
8-Feb-2009
[1756]
A pair! is a datatype which looks like a series, but is unfortunately 
(for this case) a scalar. That means any modification causes the 
whole pair to be copied.
kib2
8-Feb-2009
[1757]
I think I've found a good exercice...if only the following is true 
: Rebol seems to handle prefix notation
Geomol
8-Feb-2009
[1758]
Operators can be prefix or infix

>> 2 + 3
== 5
>> + 2 3
== 5
Anton
8-Feb-2009
[1759]
Steeve, yes, you can do that, but then if other people want to use 
your code, they must use the accessors you have written, which effectively 
expands the language.
kib2
8-Feb-2009
[1760]
really strange : "+ 2 3" returns 5, but "- 2 3" returns 3
Anton
8-Feb-2009
[1761]
The - there is actually unary.
Geomol
8-Feb-2009
[1762]
Yes, strange!
Anton
8-Feb-2009
[1763]
A negate.
Geomol
8-Feb-2009
[1764x2]
ah yes. :-D
lol
Anton
8-Feb-2009
[1766x2]
It's the same as typing only  "2 3"
The 2 is evaluated (to 2), then the 3 is evaluated and returned, 
because it's last.
Steeve
8-Feb-2009
[1768]
-2 3
 instead
kib2
8-Feb-2009
[1769]
Anton: that's it. So then  "+ 2 -3"
Anton
8-Feb-2009
[1770x3]
(Steeve, yes, more similar.)
- is the (only?) operator which cannot be used infix.
Sorry, that's an incorrect statement.
Geomol
8-Feb-2009
[1773]
To get list of operators:

>> ? op!
Steeve
8-Feb-2009
[1774]
Kib but for our sake, there is an infix version of - operator: subtract
Geomol
8-Feb-2009
[1775]
You mean prefix.
Anton
8-Feb-2009
[1776x2]
- cannot be used as binary prefix operator, unlike the others + * 
/
Yes.
kib2
8-Feb-2009
[1778]
Steeve : thanks, i was just lookin for something like that
Steeve
8-Feb-2009
[1779]
i don't like this name by the way, Carl should have renamed it: sub, 
since long time ago
Anton
8-Feb-2009
[1780]
I never use SUBTRACT because it's too long ! :-)  I always just use 
parens to allow me to use -, even if evaluation is slower.
kib2
8-Feb-2009
[1781]
Steeve : +1
Anton
8-Feb-2009
[1782]
Using parens, it's more clear this way.
Steeve
8-Feb-2009
[1783x2]
sub suuuuuuuuuuuuuuuub ;-)
like in rebcode