[REBOL] Rolling your own ideal looper: does Repeat still have a bug? Re:(2)
Hi, just a small change: ideal-looper: func [ [throw] 'element [word!] 'index [word!] series [series!] code [block!] /local f i ] [ f: func reduce [element [any-type!] index] code i: 1 while [i = length? series] [f series/:i i i: i + 1] ] Regards Ladislav
[REBOL] Rebol/Command Doc Re:
Does anyone know where i can get Any REBOL/Command Documentation? Try looking here:- http://www.janita.com.au/rebolforces/docs/users.html HTH colinb Colin Brizell IT System Development Officer University College Worcester Tel: 01905 855389 Fax: 01905 855330 http://www.worc.ac.uk
[REBOL] context of a function Re:(11)
Hi, Galt: I generally find that most of my knowledge of other computer systems to gain insight into rebol is quite helpful and revealing. Even having the context to say, this is like scheme or logo in rebol, but that is like some other language, etc. is all helpful. So, yes, it is true that rebol is different in important ways from other languages and therefore you will have to gain a new understanding. But this notion that you would be better off starting from a point of total ignorance and then everything would be easy is patently absurd. When I have trouble with Rebol, if I was a less knowledgeable user I would probably just give up. Being able to make some guesses about possible causes or solutions is much better. So, the best way really, is for Rebol to tell us how it works inside. When you know how rebol lists really work, and string literals and contexts and words, then you understand rebol. Ignorance or innocence isn't much help. Obviously, one should try never to allow preconceptions and prejudice to inhibit understanding, and that is true of everything, not just Rebol. I am not a stupid person, even if I am not a genius. I only got this far with Rebol because I am doggedly persistent, not because I have the pleasantly uncluttered mind of an infant. I really like and respect you Andrew, and I appreciate all the work you have done for Rebol and the members of the list. I just didn't want to let this go by yet again... Now, this doesn't mean that I am anti-Rebol or want to be critical or whatever. We all love Rebol and want to use it as much as possible! I still don't know how forgetting everything I know is going to help me figure out just what the heck read-io really does and why timeouts don't seem to work as advertised for downloading big files... Andrew: I was hindered by my knowledge of other languages. Coming from a point of view of innocence, knowing only human languages, is better I feel. I disagree. The model that Rebol is based on is close to natural human language. Knowing that and knowing nothing of computer languages is the best way to learn Rebol. Rebol works literally as it is. Discussing in depth, contexts and how they work are almost meaningless, particularly when some parts of Rebol are still buggy and need to fixed. I thinking of the GC bug, hopefully that's fixed in the experimental builds. Change can be hard, but after the change, you wonder, what was the trouble? You're basically trying hard to learn the detail, without knowing rebol. Ladislav: Rebol differs from human languages in some respects. One of them can be found comparing Rebol Values vs. Human Values (see http://www.geocities.com/lmecir.geo/evaluation.txt). This may be a surprise for both experienced and inexperienced programmer, because that fact is hidden in other programming languages to some extent. Another difference can be found comparing the behaviour of Rebol (CQSB/DRP) functions with the behaviour of their Pure CQSB counterparts (see http://www.geocities.com/lmecir.geo/contexts.txt). A set of the differences can be found studying the behaviour of code - modifying functions like Repeat, Make Object!, Use, Foreach, ... The latter difference can be considered a bug, of course, but it is present in Rebol nowadays. My personal point of view is, that my previous experience with other programming languages helped me to understand Rebol and appreciate its advantages.
[REBOL] Meaning, Value, Binding and Context
Ladislav: Rebol differs from human languages in some respects. One of them can be found comparing Rebol Values vs. Human Values (see http://www.geocities.com/lmecir.geo/evaluation.txt). This may be a surprise for both experienced and inexperienced programmer, because that fact is hidden in other programming languages to some extent. Another difference can be found comparing the behaviour of Rebol (CQSB/DRP) functions with the behaviour of their Pure CQSB counterparts (see http://www.geocities.com/lmecir.geo/contexts.txt). A set of the differences can be found studying the behaviour of code - modifying functions like Repeat, Make Object!, Use, Foreach, ... The latter difference can be considered a bug, of course, but it is present in Rebol nowadays. This is quoted from Ladislav's web page: Quote ; create a block Blk containing a word 'a blk: copy [a] a: 12 ; now append another word to Blk b: make object! [append blk 'a a: 13] probe blk ; test if blk contains equal words equal? first blk second blk equal? get first blk get second blk What is the reason behind such a "mystery"? The answer is simple: *Words have Bindings* and the first Word in Blk has a different Binding, than the second. /Quote I differ slightly in my interpretation. ; create a block Blk containing a word 'a blk: copy [a] == [a] a: 12 == 12 ; now append another word to Blk b: make object! [append blk 'a a: 13] probe blk [a a] == [a a] ; test if blk contains equal words equal? first blk second blk == true equal? get first blk get second blk == false first blk == a second blk == a get first blk == 12 get second blk == 13 a == 12 b/a == 13 probe a 12 == 12 probe b make object! [ a: 13 ] Words have meanings (or values). The meaning of a word depends on it's context. Two words may look the same, but can have different meanings, because of their different contexts. 'b is an object with a different context to the surrounding context. The word 'a inside 'b has a different meaning from the 'a defined inside the global context. While the two words: first blk and: second blk look the same, they both result in 'a, they have different meanings. The first means: 12 and the second means: 13 That's all there is to it. It's very like human language. For example, "bear". There's a bear in the woods. That's all it can bear. Two words exactly the same like [a a], but with different meanings. Here the surrounding words supply the context, enabling the reader to know that the first "bear" (a) means a four legged mammal (12), while the second "bear" (a) means an amount of weight (13). One can change the meaning of the word by binding it into a different context. Here I bind the block into the global context: bind blk 'a == [a a] get first blk == 12 get second blk == 12 and so make both words in the block mean the same. I can reassign the meaning of the words in the block by 'bind-ing the block's words into the context of the object 'blk, like this: bind blk in b second first b == [a a] get first blk == 13 get second blk == 13 And I really like the simplicity of the line: bind blk in b which really means what it says. The only confusing thing is: second first b first b == [self a] 'first on a object gets you a list of words in the object. While 'second simply gets the first word after 'self: second first b == a so allowing the 'bind to work. help in USAGE: IN object word DESCRIPTION: Returns the word in the object's context. IN is a native value. ARGUMENTS: object -- (Type: object) word -- (Type: word) Ladislav: My personal point of view is, that my previous experience with other programming languages helped me to understand Rebol and appreciate its advantages. There's two succesful approaches to understanding Rebol. Have little understanding of conventional computer languages - the innocent approach. Have lots of understanding of conventional languages as Carl Sassenrath has done and as most likely, Ladislav has. If you know one or a few conventional third generation languages, then you're behind on the learning Rebol curve, until you unlearn these languages. Andrew Martin See Rebol, Do Rebol, Know Rebol... ICQ: 26227169 http://members.xoom.com/AndrewMartin/ --
[REBOL] make list 0 versus make list []
I read something in the REBOL McGraw-Hill book, but would like to verify it. Is there a difference on subsequent invocations of a function if I bind a (local?) value using make list! 0 versus make list! [] So, now I have created 4 cases: make list!.0 or [] the word being defined./local to function or global to rebol If I could get an answer to all four of these cases, I would be a much clearer on state retention between function invocations. Thanks. Terrence "Perl Refugee" Brannon Get your FREE Email and Voicemail at Lycos Communications at http://comm.lycos.com
[REBOL] who invented rebol?
Hi. I'm curious who created Rebol. The rebol website claims Carl Sassenrath. But I've also read that Joe Marschall was the creator of Rebol (at least 1.x versions). Rishi
[REBOL] who invented rebol? Re:
The original and subsequent language design have all been done by Carl himself. Carl also programmed the original Alpha implementation. The 1.X implementation was primarily programmed by Joe Marshall with some last minute help from me and Sterling. The 2.0 implementation was completely rewritten from scratch primarily by Carl and myself with help from Sterling and Jeff on the REBOL scripted protocols. - jim At 12:59 PM 8/27/2000 -0700, you wrote: Hi. I'm curious who created Rebol. The rebol website claims Carl Sassenrath. But I've also read that Joe Marschall was the creator of Rebol (at least 1.x versions). Rishi
[REBOL] Smooth scrolling. What's requiered? Jim? (was) Multimedia quality (was) One disk OS + REBOL Re:(13)
Which means it works similar to turning the monitor buttons instead of moving bytes :) --- [EMAIL PROTECTED] wrote on 27-Aug-2000/1:50:58+3:00 Quoting [EMAIL PROTECTED] ([EMAIL PROTECTED]): I am an amigan and so I came to PC area from the world of very smooth scrolling. Every PC man should go and look at original screen dragging on Amiga. Smooth even on 14Mhz Amiga 500 (or was it even 7 Mhz? :-) IIRC it was hardware supported feature, but not sure. A500 was using 68000 running at 7MHz. Screendragging was done on hardware using copper to change som gfx-registers on the fly. Holger sure can explain better :) -- Jussi HagmanCS in Åbo Akademi University Studentbyn 4 D 33 [EMAIL PROTECTED] 20540 Åbo [EMAIL PROTECTED] Finland Volker
[REBOL] Index? Re:(3)
--- [EMAIL PROTECTED] wrote on 26-Aug-2000/15:15:31-7:00 Hi Volker This may be a partial dupe of one I sent earlier. Why do you insert the "item: first a", but then not use it? Paul needed the index and the item without all that 'first everytime. this is a big bit ugly, but gives you both values: a: "101" forall a [item: first a print index? a] its a sample, so i found no use for the 'item.. not as elegant as Gabrieles solution :) Here's a console session that prints index and item: a: "101" == "101" forall a [prin index? a print [" " first a]] a: head a ; This final statement is needed only if the forall is rerun later. 1 1 2 0 3 1 == "101" ; This results from the "final statement" in the console line above. - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Saturday, August 26, 2000 2:10 PM Subject: [REBOL] Index? Re: a: "101" forall a [item: first a print index? a] Is there an alternative for: a: "101" foreach item a [print index? item] 1 2 3 Obvious to you REBOL gurus this generates an error. But it illustrates clearly what I want to do. Damn, index? is native! :) Anyone have some helpful alternatives. Paul Tretter Volker -- Volker
[REBOL] Amiga Smooth scrolling. (was) What's requiered? Jim? (was) Multimedia quality (was) One disk OS + REBOL Re:(14)
Sorry to drag this on, but this thread brought back some memories! Which means it works similar to turning the monitor buttons instead of moving bytes :) Pulling down a screen on the Amiga to reveal another one behind it (like DPaint or something) was one of the most intuitive things I ever did on a computer, and the smoothness of scrolling is a lie, there was no scrolling at all! It was all real! If I didn't know any better, it just felt like I was really pulling that screen down with my hands... Unbelievable. It took me years to get "comfortable" with Windows' window-style. Two things I really missed from day one on Windows: (1) seperate screens for programs, and (2) menu at the top of the screen always! Damn, it's the niceties like that, that I miss... ;o) Regards, Rachid PS. Come to think of it, another thing I missed: inserting a floppy and having an icon appear for it on the desktop... Ah well... --- [EMAIL PROTECTED] wrote on 27-Aug-2000/1:50:58+3:00 Quoting [EMAIL PROTECTED] ([EMAIL PROTECTED]): I am an amigan and so I came to PC area from the world of very smooth scrolling. Every PC man should go and look at original screen dragging on Amiga. Smooth even on 14Mhz Amiga 500 (or was it even 7 Mhz? :-) IIRC it was hardware supported feature, but not sure. A500 was using 68000 running at 7MHz. Screendragging was done on hardware using copper to change som gfx-registers on the fly. Holger sure can explain better :) -- Jussi HagmanCS in Åbo Akademi University Studentbyn 4 D 33 [EMAIL PROTECTED] 20540 Åbo [EMAIL PROTECTED] Finland Volker
[REBOL] Rebol on the Cassiopeia E-115
Hello, Anyone tried this one yet? (when's view coming out for the PocketPC? ;o) Regards, Rachid
[REBOL] sid-server and linux
sid-server or any server for that matter in rebol what is a good approach to start and stop a server written in rebol on linux i telnet in and start it up but have to remain connected to make it work help! i know it has something to do with shell user and such i think thanks Jeff Rubin, CTO Co-Founder Audiopia Shutup and Listen... http://www.audiopia.com also check out my personal site Brainbyte! http://www.brainbyte.com
[REBOL] passing and recognizing cgi variables Re:
Jeff Rubin wrote: note I tried retrieving the returned variables according to the official guide: user-data-object: make object! decode-cgi system/options/cgi/query-string that did not work just returned ?object? when I printed it out so I changed it to: Try: probe user-data-object to see what's inside the object. I hope that helps. Andrew Martin ICQ: 26227169 http://members.xoom.com/AndrewMartin/ --
[REBOL] Windows Scripting Host Re:
Russell [EMAIL PROTECTED] wrote: Does REBOL/core or REBOL/view us the Windows Scripting Host (a feature of Win98). I want to disable it to prevent virus infections. Unfortunately REBOL doesn't support the ActiveScript interface. No worries there. Take a look at it though, it's more useful than you might think. Real scripting support for Windows. You can do things that even /Command can't do, at least until RT adds ActiveX client support. Uninstalling WSH won't save you, though... As for viruses, the best way for you to avoid them is to uninstall any Outlook or Outlook Express applications that you have on your system. Most email viruses take advantage of the prevalence of the Outlook programs and its relative lack of security, even after the recent patches. Any language or program with ActiveX support can make Outlook do all sorts of stuff, even if you don't ever use it, not just VBScripts. The only safe thing to do is uninstall Outlook. Try Eudora. That program can be locked down tight, and after recent email scares, they increased the security even more. I know, because I told their developers where to look for file extensions that are normally associated with unsafe code. If they missed any you can blame me, I guess (Please don't) :) Brian Hawley