• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r4wp

[Rebol School] REBOL School

Ladislav
23-Mar-2013
[1844]
See also

http://issue.cc/r3/1946



to note that there is almost no limit how much more inefficient can 
R3 functions be compared to closures. This is unacceptable taking 
into account that R3 functions purportedly are a "compromise solution" 
sacrificing correctness, reliability, comfort for speed.
GiuseppeC
23-Mar-2013
[1845]
Is the "Bindology" article still valid for R3 ?
Ladislav
23-Mar-2013
[1846]
Well, changes exist. It is useful to read it even when trying to 
understand how it is supposed to work in R3. It would be better to 
update it for R3, though.
SWhite
4-Apr-2013
[1847]
OK, now I know the answer and it is time to confess it.  I have complained 
a number of times about how obscure REBOL is (to me) and how I sometimes 
can look at ONE LINE of code and not understand it. I wonder, is 
it REBOL, or is it me.   Well, I am learning python for work, and 
I want to replce the html lt and gt symbols with their character 
entities or whatever they are called, I found a sample on the internet, 
wrote up a test program, copied the sample, and it worked.  So here 
I am looking at ONE LINE of python code and I don't understand how 
it works.  So, the answer to, is it REBOL or is it me, is, IT'S ME. 
 I think I'm in the wrong line of work.
Gregg
4-Apr-2013
[1848]
It all depends on the line of code Steven. :-) Still, if there's 
something you enjoy more, that makes you feel like it clicks in your 
head, do that.
Arnold
4-Apr-2013
[1849x3]
In most languages it is possible to do things in one line. Very often 
the result is that it is hard to understand what happens in that 
line. In the light of maintainable code I have the attitude that 
I rather deal with less comlicated code that is possibly a little 
slower. If that is not an option (most of the time performance stays 
way within limits even if it is readable) then I leave a big comment 
what the code is about. For sure the next guy/girl will appreciate 
this when it is their turn. There have been many occasions that I 
myself was the assigned the next adaptations and only a few months 
later these comments really were helpful.
Some guys are wizzards, but they do not take into account the maintainability 
of their code by others. Real wizzards make good clear readable code.
And leaving complicated code without comments because you understand 
it (at the moment of creating the code) is also bad practice. As 
a professional coder I comment a lot, maybe because sometimes it 
is not appealing to come back later for more headaches from bad coding 
practice from colleagues ;)
Ladislav
4-Apr-2013
[1852]
I sometimes can look at ONE LINE of code and not understand it

 - it can happen to anyone of us (at least I do not have any problem 
 to admit it happens to me as well) I just don't give up in such case 
 knowing that I will be rewarded if I find out what it is I am not 
 seeing
Endo
5-Apr-2013
[1853]
No, SWhite, it's not you! it's me! :)
Marco
6-Apr-2013
[1854]
@SWhite: I think it happens to all of us. If you know what that ONE 
LINE does try to do it in as many lines you prefer and then try to 
shrink those lines to only one and maybe you will end up with that 
ONE LINE !
caelum
14-Apr-2013
[1855]
Does anyone know where I can find the '%gui.r' in the 'do %gui.r' 
line of this program?

http://reb4.me/r/arrow-RebGUI-port


I have searched Christopher Ross-Gill's website and don't see it 
or where to find it.
GrahamC
14-Apr-2013
[1856]
Was that the abortive View development?
caelum
14-Apr-2013
[1857]
Don't know. The program dates back to 2005. Was that when the 'abortive 
View development' happened?
NickA
14-Apr-2013
[1858]
Chris is still active here - have you tried PMimg him?
caelum
14-Apr-2013
[1859]
Yes, I left a message for him. But he has not been here for a couple 
of months.
GrahamC
15-Apr-2013
[1860]
Here's usually now found on http://chat.stackoverflow.com/rooms/291/rebol-and-red
Artful
23-Apr-2013
[1861]
ok silly newbie question here.  I'm trying to run some scripts in 
rebol/view 2.7.8 which produce just console output.  I'm finding 
the output window automatically closing when the script ends.  I 
know I could fix this with a readline statement, but I'm wondering 
why the auto-close in prefs.r isn't working for me.  I'm also trying 
to run same script via dos window, using rebol.exe -ws test.r  but 
that opens an output window rather than display to the dos window. 
 I feel such a noob lol.
Gregg
23-Apr-2013
[1862x2]
Not to worry. We were all noobs once. REBOL automatically quits at 
the end of the script. If you want to keep the cosole open, put a 
HALT at the end.
REBOL, under Windows, uses its own GUI "console" window, so you have 
to trick it. Running it in CGI mode should work for you.
Artful
23-Apr-2013
[1864]
aha  ok, thanks.  I knew it was something simple.
Gregg
23-Apr-2013
[1865x2]
With REBOL, it's almost always something simple. Until you drop into 
the deep water. :-)
But someone is usually here to throw you a life preserver.
Artful
23-Apr-2013
[1867x2]
yes I am pleased the community is still going strong.
so any difference to script execution if cgi mode is used? besides 
the no output window
Gregg
23-Apr-2013
[1869]
Shouldn't be. Doc or other experts might know of subtlties though.
Endo
24-Apr-2013
[1870]
>> x: next [a b]  USE x [a: 1]  print a
** Script Error: a has no value

Why USE make 'a local on above example while X is [b] ?
Gregg
24-Apr-2013
[1871]
It works correctly under R3. R2 is obviously using the head of the 
series. You can work around it by using COPY before NEXT.
Endo
25-Apr-2013
[1872x2]
I know, it is not a big deal, I was just curious if there is a reason..
By the way, here is my sandbox function which allows only print, 
* and + words

safe-words: [print * +] 

sandbox: func [b [block!]] [use difference safe-words first system/words 
b]

>> sandbox [print 3 * 4]
12
>> sandbox [print read %test.r]
** Script Error: read has no value
DideC
26-Apr-2013
[1874]
Nice
PatrickP61
2-May-2013
[1875]
Quick Question: I'm having some trouble understanding ANY.  I thought 
it meant that you could state a condition such as IF var = ANY ["val1" 
"val2"] [do something]

But that only becomes true on the first condition, not the second. 
 Example code:


>> forever [do cmd: ask "? " if cmd = any ["quit" "q"] [print "done" 
break]]
? q
? quit
done
>>
what am I missing?
MikeL
2-May-2013
[1876x3]
The first value in your ANY block is "Quit" which is not a TRUE.
The second is "Q" which is also not a TRUE.
HELP ANY gives Evaluates and returns the first value that is not 
FALSE or NONE.
Gregg
2-May-2013
[1879]
Patrick, just do this in the console and see what you get:

any ["quit" "q"]
PatrickP61
2-May-2013
[1880]
Ok, so ANY is simply a way to pass back a value that is not false?
Gregg
2-May-2013
[1881x2]
The key part in the doc string: "...returns the first value that 
is not FALSE or NONE"
So it evaluates each value in the block you give it, and as soon 
as it hits a value that is not false or none, it returns that value. 
So, in your case, it will always return "quit".
PatrickP61
2-May-2013
[1883]
so in my case ANY ["quit" "q"] will ALWAYS return "quit" since it 
is a valid expression
Gregg
2-May-2013
[1884x2]
Correct.
So think of how to solve it other ways. ANY evaluates, so you could 
put your comparison expressions inside the ANY block. That will get 
unwieldy very fast though. How else might you do it? What is it you 
want to do (in a general sense)?
PatrickP61
2-May-2013
[1886x2]
I suppose the CASE command would be better
My goal is to simply stay in a loop, accepting all valid rebol commands 
until I quit the loop

For example, I've defined some variables to script names, and so 
when I enter the variable, it should DO those names, until quit
Gregg
2-May-2013
[1888x2]
And for the case of q and quit, and maybe others, you want to see 
if they command is in a set of commands you want to process in a 
special way, correct?
That is, you want to see if you FIND the command in a set of known 
commands and act accordingly.
PatrickP61
2-May-2013
[1890x2]
not really, it's just a quick shortcut to allow any REBOL command 
to be performed while it is in a script that is already executing.
...doing stuff...

stopping here to accept various rebol commands and looping until 
finished
...doing the rest of the script
Its a way to "pause" a running script to enter rebol commands and 
then when I'm done, get out of the loop and continue with the rest 
of the script
Gregg
2-May-2013
[1892]
Right, so you ask for the command, see if it's a command to exit 
your loop (q or quit) and DO it if not, correct?
PatrickP61
2-May-2013
[1893]
yep