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
[1712]
Steeve: Rebol is auto folding !
Geomol
8-Feb-2009
[1713]
kib, science, programming, playing piano, graphics, photo, astronomy 
... many things. My hp at university: http://www.fys.ku.dk/~niclasen/
Anton
8-Feb-2009
[1714]
I like colourization, but I make the colours vary only slightly from 
black, so there are no very bright colours shouting at me.
kib2
8-Feb-2009
[1715x2]
Geomol: you're working on astronomy : nice !
Anton: I like this Emacs theme : http://tinyurl.com/chybvc
Steeve
8-Feb-2009
[1717]
yes nice, same comment
Geomol
8-Feb-2009
[1718]
Studying astronomy. Bachelor this summer.
Anton
8-Feb-2009
[1719]
kib2: I should point out that  '  is not an operator. There are a 
few word datatypes which are closely related, but are treated slightly 
differently.
	word!     eg.    hello
	lit-word!  eg.   'hello
	get-word! eg.  :hello
	set-word! eg.  hello:
kib2
8-Feb-2009
[1720x2]
I saw there was a really nice postscript (and pdf) lib in Rebol. 
What about using it for making scientific diagrams ? (an old project 
of mine, in Python, was geoPyx here: http://kib2.free.fr/geoPyX/geoPyXfr.html)
Anton: so what is ' exactly ? I mean a litteral, but that's not a 
Rebol function ?
Anton
8-Feb-2009
[1722x2]
No, not a function.
When the interpreter evaluates some items in a block, and it comes 
across word!, it automatically tries to reduce it to its associated 
value.
Geomol
8-Feb-2009
[1724]
In the classes in astronomy, we're taught a language called IDL to 
reduce scientific data and make images and diagrams. I often just 
use REBOL directly to make the diagrams. I've wanted many times to 
make a library of routines or a plotting application in REBOL, but 
haven't had the time yet. Maybe some day.
Anton
8-Feb-2009
[1725x2]
When it comes across a lit-word!, however, it reduces it to the word! 
of the same spelling.
This is how I think of it:

	lit-word!  -->  word!  -->  value
kib2
8-Feb-2009
[1727x2]
Anton: ok, that's clearer now.
Geomol: is creating a plotting dialect that hard ?
Steeve
8-Feb-2009
[1729x2]
try this Kib:
>> a: 2
>> reduce [a]
>> reduce ['a]
and
>> reduce reduce ['a]
Henrik
8-Feb-2009
[1731]
I wouldn't mind being able to set 3-4 months aside to create a complete 
graphing dialect.
kib2
8-Feb-2009
[1732]
Steeve: ok i've tried. But why the reduce output is a block ?
Anton
8-Feb-2009
[1733]
(kib2: yes, creating a plotting dialect is hard. It must be - I tried 
creating a general plotting function. There are many types of chart/graph 
to support.)
Geomol
8-Feb-2009
[1734]
kib, it's probably not hard, maybe take a bit of work to make it 
really slim and clever. I just have a ton of projects in the air 
all the time, so I didn't come to it yet.
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.