[REBOL] Question: Move the REBOL List? Re:
When do we start? At 06:23 PM 10/10/00 -0700, you wrote: >Dear REBOL list readers: > >It's great to have so much activity happening with REBOL these days. Unfortunately, our servers are overloading. We're starting to have gigabyte days. While it is good to have all this activity, it is making life difficult for a few folks around here. What would you think if we were to move this main list to a site like egroups.com? That would also give you web access to archives, file lists, and other features. > >Your thoughts? > >-Carl > > > >
[REBOL] 'Help extension v1.0 Re:
This is wonderful! Now it's a part of my user.r! >> help system OBJECT: system WORDS: build -- (Type: date) components -- (Type: block) license-- (Type: string) product-- (Type: word) stats -- (Type: native) version-- (Type: tuple) SUB-OBJECTS: console error locale network options ports schemes script standard user view words FUNCTIONS: (none) >> help system/product PRODUCT is a word of value: View >> help system/build BUILD is a date of value: 3-Oct-2000/8:17:56-7:00 >> help system/version VERSION is a tuple of value: 0.10.38.3.1 >> help system/words OBJECT: words ** Script Error: != has no value. ** Where: switch/default mold type? get in At 06:44 PM 10/8/00 +0200, you wrote: >Hi! > >I've done a little, but usefull IMHO, patch for the 'help command. >Have you ever try to see the description of a function defined in an object >using the standart help ? When using objects a lot, you couldn't use the >auto-doc feature of 'help, because, it wasn't able to go inside an object! >Until now...;) >So, i write this patch to 'help to allow object introspection. 'Help on an >object will return its words, sub-objects and functions. Now, you can do >things like : > >a: make object! [ >c: func ["print a message"][ print "I'm c in a!" ] >b: make object! [ >d: func ["read a web page" link [url!]][ print read link ] >e: 5 >] >] > >help a >help a/c >help a/b >help a/b/d >help a/b/e > >You can even browse the system object with : help system :) >Try it on your own objects ! > >The RIP archive is in the attached file. Just save it on your rebol dir >and type : do %help-arc.rip on the command line. It will decompress the >archive and create 2 files : > >help.r : the patch! (add do %help.r in your user.r!) >diff-help.html : a 2-colored source code of the patched 'help showing where >code was added (if someone want to improve the code, it would be easier...;)) > >Enjoy it! > >DocKimbel. >Attachment Converted: "D:\PROGRAM FILES\EUDORA\NewAttach\help-arc.rip" >
[REBOL] learning to parse Re:(4)
nounphrase: [ "Andrew" ] predphrase: [ "Rules!" ] string: "Andrew Rules!" parse string [nounphrase predphrase] chaz REBOL[] print enbase/64 #{26EB2D027A2D85EAFE44404E2FE1DA7247AB59A9ED4E805E} ask [] At 02:55 AM 10/7/00 -0800, you wrote: >> determiner: [ >> "Attractive" | >> "Intelligent" | >> "Visionary" | >> "Dangerous" <- You're missing something here... >> "The" | >> "Complacent" | >> none >> ] > >I hope that helps! > >Andrew Martin >ICQ: 26227169 >http://members.nbci.com/AndrewMartin/ >-><- > > >
[REBOL] learning to parse Re:(2)
I'm going through a book called "The New English Grammar: A Descriptive Introduction" by N.R. Cattell, copyright 1969, isbn 0 262 53 015 5 (first published 1966 as "The Design of English" by Heinemann Educational Books, Ltd.) I've learned that parsing is very dependent on the word classes ("constituents") chosen, and the order of these constituents. Problem. I'm trying to reuse the constituent "nounphrase", and it doesn't seem to be working. Any ideas? Rebol [] nominal: [ "Americans" | "Australians" | "Dutch" | "Germans" | "REBOLs" | "Masses" ] determiner: [ "Attractive" | "Intelligent" | "Visionary" | "Dangerous" "The" | "Complacent" | none ] nounphrase: [determiner nominal] particle: [ "up" | "out" | "over" | "away" | none ] verbintransitive: [ "understand" | "rule" | "script" | "travel" | "triumph" ] ;verbphrase: [verbintransitive particle nounphrase] verbphrase: [verbintransitive particle nounphrase] preverb: [ "always" | "fortunately" | "certainly" | none ] auxiliary: [ "will" | "shall" | "should" | "must" | none ] predphrase: [ auxiliary preverb verbphrase] string: "Complacent Masses will always triumph over Dangerous REBOLs" parse string [nounphrase predphrase] chaz REBOL[] print enbase/64 #{26EB2D027A2D85EAFE44404E2FE1DA7247AB} ask []
[REBOL] learning to parse Re:
Rebol [] nominal: [ "Americans" | "Australians" | "Dutch" | "Germans" | "REBOLs" ] determiner: [ "Attractive" | "Intelligent" | "Visionary" ] nounphrase: [determiner nominal] predphrase: [ "understand" | "rule" | "script" | "travel" | ] string: "Intelligent REBOLs understand" parse string [nounphrase predphrase] chaz REBOL[] print enbase/64 #{26EB2D027A2D85EAFE44404E2FE1DA7247AB} ask []
[REBOL] learning to parse
Rebol [] nounphrase: [ "Americans" | "Australians" | "Dutch" | "Germans" | "REBOLs" ] predphrase: [ "understand" | "rule" | "script" | "travel" | ] string: "REBOLs rule" parse string [nounphrase predphrase] chaz REBOL[] print enbase/64 #{26EB2D027A2D85EAFE44404E2FE1DA7247AB} ask []
[REBOL] Beer time... Re:
You deserve it! At 06:05 PM 9/30/00 -0700, you wrote: >View is nearly complete with this release. There is still some work to do on edit text, and a general cleanup sweep needs to happen soon. However, I'm quite happy with where it is today. Packs a lot of punch for 360K. > >The next big focus for View is to get the Express features into it: encryption, authentication, certification, notification, and synchronization. A lot of 'tions, but you'll see an Express icon pop up in the next release useful stuff. > >As you can see from the webcam that there's a beer bust and band happening across the street from REBOL. It's Ukiah's Read Tail Ale so, now that 0.10.35 is done, I need a brew. > >Cheers, > >-Carl > > >
[REBOL] Digest? Re:
you can unsubsribe :) and use the REBOL/Core archive http://www.REBOL.org/userlist/html/index.html chaz REBOL[] print enbase/64 #{26EB2D027A2D85EAFE44404E2FE1DA7247AB} ask [] At 11:07 PM 9/30/00 -0400, you wrote: > I just subbed to this list yesterday and its got a little more >traffic than I'd like. Is there a digest version? > >"There is nothing which can better deserve our patronage than the >promotion of science and literature. Knowledge is in every country the >surest basis of public happiness." - George Washington >-- >Jagged Alliance 2 FAQ: http://pegasus.cc.ucf.edu/~bcr19374/ja2faq.html >JADG Mailing List: http://www.onelist.com/group/jadg/ > >
[REBOL] Working with binary data Re:(2)
Great thread! Binary is cool! chaz REBOL[] print enbase/64 #{26EB2D027A2D85EAFE44404E2FE1DA7247AB} ask [] At 06:00 PM 9/26/00 -0800, you wrote: >Hi Jeff: >Try playing with the following code: >;=== >variable: #{ >5249464624004341666D74201800010001005C774C01 >B2530002332D0400 >} >print reform["first four bytes:" copy/part variable 4] >variable: skip variable 4 >print reform["next four bytes:" copy/part variable 4] >print to-integer copy/part variable 4 >;=== >And of course, you can assign copy/part variable 4 to another word and >convert it into an integer: >>> second-integer: to-integer copy/part variable 4 >== 603979776 >I hope this helps... >Tim >[EMAIL PROTECTED] wrote: > >> If I read in a binary file I get this for example: >> >> variable: #{ >> 5249464624004341666D74201800010001005C774C01 >> B2530002332D0400 >> } >> >> How do I navigate this to get to specific values and extract them and store >> them in variables? >> >> The best I could do is use >> data: first variable >> >> BUT, I would like to be able to extract more than one at a time. >> >> Thanks, >> >> Jeff > >
[REBOL] Fun with Win32
Run rebmsgbox.exe Then run rebmsgbox.r Then run rebmsgbox.exe again. rebmsgbox.exe REBOL [ Title: "REBOL Message Box" Author: "chaz" Date: 28-Aug-2000 File: %rebmsgbox.r Email: [EMAIL PROTECTED] Purpose: { Creates a Win32 message box with a message of your choice. } Note: { This script demonstrates one simple technique for editing a Win32 binary using REBOL. } ] reb_exe: read/binary %rebmsgbox.exe clear at reb_exe 2061 reb_text: enbase/base "REBOL rules!" 16 reb_string: join debase/base reb_text 16 #{00} append reb_exe reb_string write/binary %rebmsgbox.exe reb_exe
[REBOL] Is there a rebol email client app yet? Re:
http://www.egroups.com/group/Rebmail At 10:07 PM 8/19/00 +1000, you wrote: >I thought there was a Rebol email client app project underway. I was >wondering if anyone knows if it has produced something. > >Brett. > >-- >>> my-rebol-stuff >== http://www.zipworld.com.au/~bhandley/rebol > >
[REBOL] interesting article - Why compilers are doomed
By Jean-Claude Wippler, creator of MetaKit, "an efficient embedded database library with a small footprint" http://www.equi4.com/jcw/wiki.cgi/56.html
[REBOL] REBOL the Official Guide Re:(3)
After reading about it for days on this list (and getting increasingly envious), today I finally received my copy of Rebol: The Official Guide, the limited edition Carl Sassenrath-signed tip sheet. The CD was in the back, as expected, and works very well. Thanks Ralph and all the folks at Alexander Press who were responsible for getting this book into my hands (it's a hefty thing!) Thanks to all the folks at RebolPress for putting it all together! Thanks Elan and John for distilling the facts into concrete examples and explanations! Thanks Carl and all the folks at REBOL Technologies for manifesting your inner REBOLs! chaz "Rule One of surviving is: Figure out what your brain will do and use that to get around what your brain won't do. This is pleasanter than hitting your head against the wall in sheer frustration and much more useful than swearing" - Peaches Dann At 06:13 PM 8/4/00 -0500, you wrote: >I got my book today and wow is it packed. Totally awesome! Much better >than I expected. By the way Carl thanks us all for our participation in >this great list. Get the Book - you will be glad you did. > >-Original Message- >From: [EMAIL PROTECTED] >[mailto:[EMAIL PROTECTED]] >Sent: Friday, August 04, 2000 4:26 PM >To: [EMAIL PROTECTED] >Subject: [REBOL] REBOL the Official Guide Re: > > >Hi, > >I want to make your words mine. I think Rebol just a great product and an >excelent language to start programming. Carl and his team have done a real >great job! > >I ordered my copy of REBOL Official Guide just yesterday at Amazon books by >less than US$ 28 and I'm anxious to put my hands on it! > >Unfortunatelly in my country, Brazil, I have not found yet other people that >program with REBOL to exchange some experience. > >I also would like to make an invitation to the people in this group that >speaks Portuguese :-) to join me and help me build a Portuguese web site >dedicated to REBOL. > >Greetings > >Carlos Lorenz > > >- Original Message - >From: <[EMAIL PROTECTED]> >To: <[EMAIL PROTECTED]> >Sent: Quinta-feira, 3 de Agosto de 2000 18:03 >Subject: [REBOL] REBOL the Official Guide > > >> >> I just want to urge everyone who is serious about learning REBOL to buy >the >> book "REBOL - The Official Guide". I dont work for REBOL or anyway profit >> from this book. However, I know many people on these lists have had great >> benefits from RT products whether beta or not. Carl and his staff have >> worked very hard to create a great product and I have heard great things >> about the book. I myself have already ordered and await anxiously for >> arrival. I also want to thank all of you for your help and contribution >to >> the lists. Amazon, is asking for reviews so if you have recieved the book >> Im sure you will post great things about the book. Have fun everyone! >> >> Paul >> >> > >
[REBOL] REBOL SCOPING / CONTEXT EXPLANATIONS Re:(6)
send [EMAIL PROTECTED] "subscribe" At 10:09 AM 7/21/00 -0400, you wrote: >Hey, I never got to join the Ally list. How can I sign up? Thanks! > >Keith > >- Original Message - >From: <[EMAIL PROTECTED]> >To: <[EMAIL PROTECTED]> >Sent: Thursday, July 20, 2000 11:55 PM >Subject: [REBOL] REBOL SCOPING / CONTEXT EXPLANATIONS Re:(4) > > >> Thanks. Ok, I see the problem. It's the ol' indefinite extent bug raising >its ugly head again. We'll be fixing it as we proceed next week to add >Modules to REBOL. I'll be starting a discussion about REBOL modules on the >Ally list soon, for anyone who's into that kind of thing. >> >> -Carl >> >> >> At 7/20/00 07:49 PM -0700, you wrote: >> >Hi Carl >> > >> >Just trying to figure out your context test and noticed that recycle >causes >> >an invalid page fault under Win98 Core 2.3 when running this script. >> > >> >REBOL [ >> > Title: "Carl's context test" >> > File: %context.r >> > Date: 20-Jul-2000 >> >] >> > >> >b: function [][b] [ >> > make object! [ >> > b1: make object! [a: "Time" b: [a]] >> > b2: make b1 [a: "for you"] >> > b3: make b2 [a: "to leave!" b: does [a]] >> > set 'b [b1 b2 b3] >> > get-it: func [b] [get in b 'b] >> > ] >> > b >> >] >> > >> >var: [] >> >foreach b b: b bind [append var get-it get b] first b >> >recycle ;recycle here causes crash when doing print >> >print var >> > >> >Wondering if there is a simple explanation for this? Seems like >something >> >about the context referencing is destroyed by recycle. >> > >> >-Larry >> > >> >- Original Message - >> >From: <[EMAIL PROTECTED]> >> >To: <[EMAIL PROTECTED]> >> >Sent: Thursday, July 20, 2000 10:10 AM >> >Subject: [REBOL] REBOL SCOPING / CONTEXT EXPLANATIONS Re:(2) >> > >> > >> >> Good explanation. Fun with contexts. I like the "do" not "try" zen yoda >> >thing. Nice touch. Here's the next one to zen. "Fetch these objects >from >> >my hand..." >> >> >> >> b: function [][b] [ >> >> make object! [ >> >> b1: make object! [a: "Time" b: [a]] >> >> b2: make b1 [a: "for you"] >> >> b3: make b2 [a: "to leave!" b: does [a]] >> >> set 'b [b1 b2 b3] >> >> get-it: func [b] [get in b 'b] >> >> ] >> >> b >> >> ] >> >> >> >> var: [] >> >> foreach b b: b bind [append var get-it get b] first b >> >> print var >> >> >> >> >> >> Sorry, too little sleep and not enough indefinite extent >> >> makes me write like perl. Nah... >> >> >> >> -Carl >> >> >> >> PS: Actually, explain it, and there's not much left to say. >> >> Really! Plus, MIT will throw in a Master's Degree for you. >> >> >> >> Hint: it's much easier to explain than it looks. But, you've >> >> got to use a dialect to do it. (Now I'll be quiet.) >> >> >> >> > >
[REBOL] Internet Appliance (or) Why I like Rebol
One of Rebol's strengths is that it is on so many OS platforms, and can take advantage of opportunities in any of those spaces. For instance, Rebol supports the QNX OS, and 2 months ago 3com and QNX announced that they are teaming up to create an Internet Appliance. http://www.qnx.com/hotnews/pr/may15_00-3com.html Since Rebol is an Internet messenging language, it makes sense to me that, as a Rebol user, I should be able to use scripts created by the platform-diverse Rebol Community on this new appliance. If true, then Rebol gives me the tools to be productive the instant I grab this new alien thing. That's real power.
[REBOL] qnx
was looking at http://www.rebol.com/platforms.html and noticed one of the x86 platforms was qnx. never heard of it before. curious, went to http://www.qnx.com/demodisk/ and found a cool demo - it makes a bootable floppy that contains an OS, a browser, and a webserver. they're coming out with a free download real soon now :) http://get.qnx.com/ check it out.
[REBOL] How to execute a rebol script from an html page? Re:(2)
This is an earlier post to this list by Allen K An archive of this list is available at http://www.rebol.org/userlist/html/index.html To: [EMAIL PROTECTED] From: [EMAIL PROTECTED] Reply-To: [EMAIL PROTECTED] Date: Wed, 29 Mar 2000 9:53:20 +1000 Subject: [REBOL] [REBOL]Where's CGI Documentation? Re: X-REBOL: 2.2.0.4.2 "The Internet Messaging Language (TM) WWW.REBOL.COM" X-MindSpring-Loop: [EMAIL PROTECTED] X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2919.6700 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 X-SELMA: [REBOL] 128883 Hi Tim, CGI is covered in the how-to http://www.rebol.com/howto.html#cgi-scripts.html Example scripts in the library area http://www.rebol.com/examples.html#cgi And some scripts at rebol.org http://www.rebol.org/cgi/index.html Cheers Allen K At 08:17 AM 7/12/00 -0500, you wrote: >Brett, > >It worked when you run it as a rebol script. But if you loaded as you load an >html page, "REBOL Spoken here" won't show up in your browser. Because your web >server needs to know what rebol is. > >Tiana > >Reply Separator >Subject:[REBOL] How to execute a rebol script from an html page? Re: >Author: <[EMAIL PROTECTED]> >Date: 7/12/00 10:15 AM > >Tiana, > >It does work, and it has nothing to do with a web server. > >>> do http://www.rebol.com/library/scripts/inhtml.r >connecting to: www.rebol.com >Script: "REBOL Script in HTML File" (24-Apr-1999) >REBOL spoken here! >>> do %/f/rebol/library/inhtml.r >Script: "REBOL Script in HTML File" (24-Apr-1999) >REBOL spoken here! >>> > >Brett. > > > >
[REBOL] func[func] Re:(8)
This really was an interesting discussion about context. http://www.rebol.org/userlist/html/threads-21.html Maybe RebolPress (or Alexander Books) should be persuaded to pay Brian an advance to write something based on this (perhaps call it "Undocumented Rebol" or "Rebol Internals" or "A Schemer's Guide to Rebol") At 05:45 PM 7/10/00 -0500, you wrote: >Galt wrote: >>Jeff and Brian, you guys are terrific help, and I really >>appreciate it. Hopefully some of the other people >>on the list have the same questions as me and are >>benefitting from your wisdom, too. > >Flatterer :) > >>Brian, one little interesting point, as you may have >>seen from Ladislav's generous note: >>--- >> > Did this used to work in an older rebol without compose? >> > >>Here you are: >> >>REBOL >>1.0.3.3 (Win32 x86) >... >>So, it did used to work in an older Rebol. > >This is interesting! I kind of thought this might be the >case, but I didn't check. Learn something old every day! > >But compose was added much later than this. The initial >2.x versions didn't have it either. The changeover from >the Scheme engine to the stack engine didn't have much >to do with compose. > >>So, is it safe to say that a context is associated >>only with a word? Or is a word assoc. with a context? > >A word is associated with a context, by the bind function >or some internal equivalent. > >>Or only words that are functions are associated with >>a context?? > >Words are not functions. Functions are first-class values >that can be assigned to words like any other value. This >distinction is a good one to keep in mind with REBOL. > >>Does each function have one context? > >By default, yes. When the function is recursed into a new >context has to be created to make it reentrant. When that >function returns, the new context is lost. The original is >still there to be reused, though. Recursive functions are >much like using the USE operation, with all of the overhead >and GC-related context concerns. > >>What about dynamically generated functions not referred >>to directly by assigning to some 'word ? Do these >>automatically have a context, too? > >Yes. The context is associated with the function value, not >any words that may have that value assigned to them. > >>Is rebol's use of context similar enough to another language >>out there that I could get some good guidance by referring >>to that language's documentation/literature ? > >At the high level, REBOL behaves much like Scheme or some >other lisp-like language, or maybe Smalltalk. At the low >level, it behaves more like an intermediate language for a >compiler. Some have said that Forth might be similar, but >I haven't verified it. Other aspects of the engine are a >bit Forth-like (stack-machine), but the high level REBOL >syntax and semantics are quite different. > >So far, conversations on this mailing list have been the >best documentation for low-level aspects of REBOL context >handling. Someone should probably codify those some day. > >It should probably be me. But I've been too busy, or more >likely too lazy. I'm waiting for the Official Guide, to >see if it covers the subject properly. If not, I'll just >have to do it, probably as a page on my web site. It's >too minimal a site anyway... > >>Thanks! to everyone on the list who has been helping me >>out here with getting a better understanding of Rebol. >>I am going to print out those notes to study them better. > >Any time! > >Brian Hawley > >(There is another Brian on the list, so I have > to sign my whole name all the time now...) > >
[REBOL] Fun with literals (was Parser seems to have bug...) Re:
You're having a lot of fun, and I'd like to understand what you're doing. Can you recommend a good entry level resource for functional programming? At 05:35 PM 7/2/00 -0500, you wrote: >Hi Brett! > >While you're reassembling, think of the advantages that this >trick can give you. This kind of assignment can be useful for >implementing what the C world calls static local variables. > >You can set a word to a literal string value, then append to >that string to create a string accumulator. This allows you >to build a string incrementally. > >You can set a word to a literal block and store values in it. >This allows you to use a function like a Scheme closure, a >function with values bundled in it, like OOP in reverse. This >technique allows OOP-like programming with better control of >your data because it is hidden inside the function. Look at >http://www.bigfoot.com/~brian.hawley/rebol/require.r for an >example of how this technique can make for bulletproof code. > >The most fun with this technique comes when you use compose >to create your code blocks. For example, consider this: > > f: func [key] [ > table: make hash! [a "a" b "b"] table/:key > ] > >Trivial, true, but imagine that pattern with a much larger >hash table, or a large binary value, or a dozen charsets for >a parse process. You can't directly represent those values >as literals - they get recreated every time. Do that in a >function and the function gets really slow. But do this: > > f: func [key] compose [ > table: (make hash! [a "a" b "b"]) table/:key > ] > >and the hash table is only created once, right before the >function is created. All calls to f then reference the now >literal hash table, making for a very fast, memory efficient >function. > >If you can use literal hash tables in a function, you can do >one of the coolest tricks from the functional-language world, >memoization. When you memoize a function, it remembers the >results of the calls to the function, so that later calls of >that value don't have to recalculate the result. You can even >do this from the outside with a separate function, although >REBOL's flexible args make the general case of that rather >tricky (I'll work on it). Here's a one-arg memoize function: > >memoize: func ["One-arg memoize, kinda weak :(" 'f [word!]] [ > set f func [x /local f saved res] compose [ > f: (get f) saved: (make hash! []) > either res: select saved :x [first res] [ > res: f x > append saved reduce [:x reduce [res]] > res > ] > ] >] > >I know, it looks awkward, but this can speed up functions >that have to go through even worse trouble to calculate >their values in the first place. It also helps with those >that use deep self-recursion to calculate their values, as >REBOL's stack space is quite limited. > >Fun stuff? > >Brian Hawley > >[EMAIL PROTECTED] wrote: >> >> >>Thanks Ingo, >>I'll just have to go away and reassemble some brain patterns... >> >>Brett. >> >>- Original Message - >>From: <[EMAIL PROTECTED]> >>To: <[EMAIL PROTECTED]> >>Sent: Sunday, July 02, 2000 12:48 AM >>Subject: [REBOL] Parser seems to have bug - different results on multiple >>calls. Re:(4) >> >> >> > Hi Brett, >> > >> > maybe this little func 'll show you what's happening ... >> > >> > test: func [] [ >> > s1: "" >> > s2: copy "" >> > append s1 "Hi, I'm changed" >> > append s2 "I'm not ..." >> > source test >> > ] >> > >> > >> test >> > test: func [][ >> > s1: "Hi, I'm changed" >> > s2: copy "" >> > append s1 "Hi, I'm changed" >> > append s2 "I'm not ..." >> > source test >> > ] >> > >> > You see, s1 has literally been changed in the source-code, >> > s2 has not. (It's one of the Rebol traps everyone has to >> > fall into once.) > >
[REBOL] grab your old user.r and rebol.r and go go go!
grab your old user.r and rebol.r and go go go!
[REBOL] Andrew, you beast! - GC too tidy? Re:(7)
This is the best comparison of Rebol to another language! Will it get turned into a webpage, so it can be put on the www.rebol.org links page? > >JB, you may not be familiar with REBOL history, but the 1.x >versions of REBOL were based on Scheme semantics. REBOL was >much slower back then, and had a larger executable, both the >result of using the Scheme model. I've got a copy of 1.0.3 >for Windows if you're curious. > >I have been using Scheme for about 8 years now and have done >my own Scheme compiler/interpreter, so I know what you mean >when you sing its praises. REBOL and Scheme are more similar >than you realize, though. For the most part you can simply >translate from Scheme to REBOL with no loss of functionality, >and more speed too. For example: > >First-class closures: >- Scheme: (set f (lambda (x) x + 1)) or (define (f x) x + 1) >- REBOL: f: func [x] [x + 1] > >Symbol/Object distinction: >- Both: 'symbol object > >Lexical scoping (other than in functions): >- Scheme: (let ((x 1) (y 2)) x + y) >- REBOL: use [x y] [x: 1 y: 2 x + y] >The "main" REBOL dialect implements lexical scoping as its >default behavior, just in a different way than Scheme does. >Scheme (interpreted) has dynamic binding, so all variables >are mapped to values in a lexical context, but symbols are >bound to variables at runtime, at every reference. With >REBOL the symbols are bound to variables once, before the >code is executed. Direct binding makes REBOL more similar >to compiled Scheme, even when it is interpreted. > >Fluid variables: Scheme needs this as a hack to get around >the limitations of lexical scoping. REBOL doesn't need them >because direct binding is much more powerful. > >Macros: With Scheme, code only looks like data, so it needs >a macro mechanism. With REBOL, code IS data, so there is no >distinction needed between macros and other functions. The >REBOL functions for code-building are more powerful too. > >Language and execution model: >- Scheme: Lisp-like lexically scoped language (conceptually) > built on a continuation engine - pretends to be stack-based > for implementation efficiency, at least if you avoid call/cc. >- REBOL: Unique, two-level language (dialects on data language) > built on a Forth-like stack engine for efficiency that Scheme > only gets after heavy optimization (sometimes not even then). > >Tail-recursion: Scheme has it (side effect of the continuation >engine, hacked when stacks are used); REBOL dropped it when it >switched to 2.x for efficiency reasons (whoops!). I guess you >have to use REBOL's extensive iterative functions instead. > >Continuations: Scheme has them (base of its execution model); >REBOL dropped these too when it switched to a stack engine. >Continuations don't make much sense with a stack engine - they >only work well when the execution model is continuation-based. >If you can't refactor your code to use callbacks or some such, >you probably don't understand it well enough to be programming >with continuations. Take a look at Icon - its goal-directed >evaluation beats continuations any day of the week. > >Numerics: REBOL is comparable to most Schemes, but that is only >because most Schemes don't implement the entire capabilities of >the Scheme standard. Most people don't do much numerics in an >interpreted language anyway, but I miss bignums :( > >List manipulation and data structures: REBOL does all of what >Scheme does, and usually does it faster. The map functions are >missing, but easily replaced, like replacing this: > (set y (map (lamda (x) x + 1) '(1 2 3))) >with this: > y: copy [1 2 3] > forall y [change y (first y) + 1] > y: head y >or if you really want map, you can make it easily yourself. >Other changes (mostly to factor out some recursion) are just >as easy to do. Most data manipulations are easier in REBOL. > >String manipulation and parsing: Throw your Scheme code away - >you'll never regret it. The incredible REBOL parse dialect gets >better every day - you'll wonder how you got by without it in >primitive languages like Scheme :) > >As for unified, formal approaches, well Scheme wins there. >REBOL is easily as unified as Scheme, but Scheme has been >formalized to death - no contest. Hey Gabriele, do you want to >help turn our context argument into a formal paper, tutorial >or something? Any one else up for papers? > >By the way, there is nothing about REBOL's GC problem that is >inherent in its execution model. It can be fixed, and it can >be avoided easily until it is fixed. As GC bugs go, I've seen >much worse than that. I'd still like it fixed, though :( > >Over all, I've found REBOL to be better at almost everything >Scheme is supposed to be good at, with few exceptions. Scheme >has been a great tool for years, but REBOL is much better. > >>Unsolicited $0.02, >> >>jb > >I think I've put in at least $0.04, no less unsolicited :) > >Brian Hawley > >
[REBOL] Andrew, you beast! - GC too tidy? Re:(4)
At 07:34 AM 6/16/00 +0200, you wrote: > > >[EMAIL PROTECTED] wrote: > >> Just a thought most of the "philosophical" questions / discussions here >> about i.e. object lifecycle, scope, bindings, etc. would be simply, >> formally, and workably solved if Rebol had a true lexical scoping model. As >> it is, it's sort of the worst of both worlds: it's semi-fluid scope with >> explicit manipulation coupled with a sort of hybrid object / object >> lifecycle model that is never really formally elaborated. Without knowing >> the internal nitty gritty of the implementation, it's hard to say if this is >> endemic to Rebol or not, but looking at i.e. the potential solutions to >> similar problems in early Lisps vs. Scheme, I'd say there's a whole lot of >> good reasons for solving the problem now. > >Just a note - isn't it too late, if two book on REBOL are already finished? >Elan, Ralph? :-) > >-pekr- Not too late, if solution is implemented correctly. Since the strength of Rebol is dialecting, then we should maintain backward compatibility through dialects. Rebol/Core 2.x scripts would not break if there was a "2.0 dialect" included with Rebol/Core 3.x. RT needs more staff and money, so Core team can focus on philosophical issues, and special task forces can focus on integrating Core with other technologies (Graphics = /View, OS and Databases = /Command, WebServer = /Apache). By overcoming implementation challenges, the task forces gain knowledge that they can bring back to /Core that will empower RT to overcome new challenges when integrating into other technologies (imagine multiprocessing = /Beowulf, Home Automation = /Base, streaming media and telephony = /Yell) But the real money may be in business-to-business. Imagine your company has developed an incredible software product whose functionality can be extended through use of a C API. Users would much rather have an easier means than going through a write-compile-test cycle to extend the product's functionality. If Rebol was integrated into the product, then user productivity would skyrocket. Case in point, Remedy Corporation has a workflow product called Action Request System (ARS). The 2 means of accessing its power are through a GUI and the ARS C API. At the State University of New York at Buffalo, users created ARSPerl, a perl module that encapsulates the function of the Remedy ARS C API. To my way of thinking, they turned to Perl because RT wasn't there to save them. What other opportunities might RT missing?
[REBOL] REBOL and the unix shell Re:(4)
Here's a prototype that Ted Husted was working on at one time. I wonder what happened. http://husted.com/rebol-dev/home.html At 01:52 PM 6/14/00 -0500, you wrote: >Hey, combine these articles with the script library, online documentation, >news headlines, links, discussion board, a REBOL store (hey, who doesn't >want a t-shirt, anyway?) and an open-source project area and you have a >very cool resource. > >8-) > >>My real hope is that if I get a bunch of these articles >>together, other people would be interested in >>contributing some domain specific articles of their own >>to the collection. REBOL is used for a universe of >>tasks, and various people out there know the complete >>ins and outs of doing a particular task with REBOL. >>IMHO, their specialized REBOL knowledge should be >>recorded and shared with the rest of the community. > > >
[REBOL] rebol for dummies Re:(2)
Will binaries for all 37 platforms be available on the CD? At 01:17 PM 6/10/00 -0400, you wrote: > >> Well, it looks like REBOL is finally going to hit the big time. There >> is going to be a "Dummies" book out in September. >> >> 8-) >> > >There is? Well, since the cat is out of the house so to speak, yes there is >going to be one. I just finished it literally today and emailed the final >parts to my editor. > >--Ralph Roberts > > >
[REBOL] More stupid Questions Re:
What platform are you running on, and what version do you get when you type >>about in the console? REBOL [ ... ] Text: read %File.asc a: now Text: join Text a print Text write %NewFile.asc Text At 06:56 AM 6/10/00 +0200, you wrote: >If I have this script > > >REBOL [ > ... ] > >Text: read File.asc > a: now >Text: join Text a >print Text >write NewFile.asc Text > > > >the Date is NOT added at the end of the file. Instead of File.asc >get an extra [NewLine] and the Date is joined in the next line. > >Example:This is the time now: >12.12.1212 > >Question: How can I join Text to an ascii file _in the same line_ ??? > >This is I want to get: > >This is the time now: 12.12.1212 > >TIA > >FreeJack > >
[REBOL] using
When you view the source html of his pages, you'll see that they are made up of 3 frames, and he fills up each of his frames with dynamically generated html pages (cgi-bin) using rebol scripts (*.r) for instance his news page http://geeks.dyndns.org:66/news.htm page is composed of the output of these three scripts http://geeks.dyndns.org:66/cgi-bin/header2.r http://geeks.dyndns.org:66/cgi-bin/news_page.r http://geeks.dyndns.org:66/cgi-bin/footer.r At 08:30 AM 6/9/00 -0600, you wrote: >I guess I'm stupid, but where's the REBOL on this site? > >-Original Message- >From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] >Sent: Friday, June 09, 2000 7:10 AM >To: [EMAIL PROTECTED] >Subject: [REBOL] using
[REBOL] Getting an URL from a form Re:(3)
Maybe this will help http://www.rebol.cz/~rebol/cgi/ At 09:44 AM 6/8/00 +0200, you wrote: >Hi, >uhm, I'll try to explain what I want to do. > >The site I'm looking at is a company that sell DVD movies. They have a >function to search for movies. I want to be able to make that search, not by >going to their homepage and typing in the form below, but just to enter an >URL (or send an URL from a Rebol script actually), and then parse the >returned page to get the info I want. The problem is that I don't know the >syntax of the URL being sent (if it's possible to use an URL). IE. one of >their links show something like: > >http://www.dvdshop.com/dvdsearch.asp?category=Horror > >if I press that link I get a list of all the horror movies. However, when it >comes to the search form, I'm unable to figure out what the URL should look >like. I've tried for example: > >http://www.dvdshop.com/dvdsearch.asp?title=Scream > >However, this isn't working, and I'd like to know what the info being sent >to their script look like, so I can reproduce it in my Rebol script. > >As I see it, there's only thing I can do. Learn what all those ? = & etc. >mean in a form posted URL and use trial and error... Or if I can capture the >info sent from the form somehow to read and be able to reproduce it from a >script. > >//Regards Stefan Falk > >-Original Message- >From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] >Sent: den 7 juni 2000 20:03 >To: [EMAIL PROTECTED] >Subject: [REBOL] Getting an URL from a form Re: > > >Hey Stefan, >I dont quite understand what your trying to do, but I will try to give you >some >information you may be able to use anyways. > >As you should already know HTTP servers take information from forms and pass >it >to a CGI program using POST or GET. The GET request can pass data via URL >encoding such as "www.foobar.com/test.cgi?test=on". > >With POST, your data is sent additionally, not as part of a URL. This >prevents >your data from being viewed or entered as a URL, and as I understand was >inpart >the reason they came up with POST. > >Hope I helped, >--Ryan > > >[EMAIL PROTECTED] wrote: > >> Hi list, >> this might not be Rebol related directly, but since I intend to use the >info >> for a rebol script I guess it's ok. Anyways, here we go. >> >> There's a page with a search form, and I'd like to know what the POSTed >URL >> look like. The source goes something like this: >> >> >> >> >> >> > VALUE="actor" CHECKED> >> >> >> > VALUE="title"> >> > SRC="search.gif" BORDER=0 ALT="Search"> >> >> >> Of course, I tried to (naive as I am), to post an url that has the form >data >> like this: http://blaaah.com/search.asp?title=blaaah >> >> but this isn't the right one. Is there any way I can instead of performing >> the search just see the url? >> >> Any info appreciated >> >> //Regards Stefan > >
[REBOL] My 2 cent contribution Re:
we could call it iloveyou.r that's evil. At 11:14 AM 5/28/00 -0500, you wrote: >Run it all on the Rebol server.r script from the >personal computer. &(it has been done allready but its in >pieces all over the place)& & Make sure you put one of those >thingamabobs (Reb link) on it. Rebolists should be encouragd to put >this link on their web page as well as a replacement for the guest books. > Now What? we have our first true means for networking in a one to >many messaging enviornment. Who can do it? &It's open because >anyone can add their own gui's and upgrades to it through a script list. >Now users can customize with out having to program.(thats want public >users like about apps anyway when they are non trivial)
[REBOL] Shareware Industry Awards 2000, People's Choice Award
Who do you love, baby? http://www.siafvoting.com/sic2000/index.cfm Best Overall Utility : Best Application : Best Graphics Program or Utility : Best Sound Program or Utility : Best Vertical Market Program or Utility : Best Business Application or Utility : Best Educational Program or Game : Best Hobby or Personal Interest Program : Best Internet Enhancement or Utility : Best Web Enhancement or Utility : Best Game - Non-Action/Arcade : Best Program or Utility for PDAs : Best Action / Arcade Game:
[REBOL] Rebol Tutorial on TUCOWS
http://htmlstuff.tucows.com/programmer/reboltut/rbastut1.html
[REBOL] Calling external functions Re:(3)
rebol's 'do is like c's '#include Although you can put many functions into one .r file, you can put one function in each .r file. Go to the script archive at http://www.rebol.org for examples of this. Although I haven't done so, or thought of a good reason to do so, I could write .h file for each separate function. Maybe they would be big functions. At 04:13 PM 5/18/00 +0200, you wrote: >At 15:51 2000-05-18 +0200, you wrote: > >>you must 'do' the file. if you do it the whole file is evaluated >> >>try to give each function in a single file > > >Hello! > >Are you saying that I have to have only one function in each >file?!? There must be some way to 'include' a whole script >and then calling each function separately? > >Best regards, >Peter Carlsson > > > > > >Peter CarlssonTel: +46 31 735 45 26 >Saab Ericsson Space ABFax: +46 31 735 40 00 >S-405 15 Göteborg Email: [EMAIL PROTECTED] >SWEDENURL: http://www.space.se > > >
[REBOL] external operating system calls Re:
At 04:25 PM 5/1/00 -0500, you wrote: >How can you run command line operating system calls in Unix or Windows from >a Rebol script? > >thanks, > >Steve > Can't do it with Rebol/Core. You'd need Rebol/Command, which is available to Beta testers. Propose a project that meets Carl's 5 requirements (below), email it to Dan, and wait for Dan's reply. At 12:49 PM 4/19/00 -0700, you wrote: >Dear REBOL friends, > ...snip... >So, what about REBOL/Command? That's what you want to know, right? > >There is both good news and bad news. The good news is that, yes, we do have /Command out to a small group of beta testers and the feedback has been positive. The bad news is that it runs on only a few platforms at this time, and we want to put more features into it before we release it to a larger group. > >Currently, the beta release of /Command has ODBC, external library (DLL) calls, and shell command access. But, I thought you wouldn't want to hear from us until we also had encryption, asynchronous messaging, network service management, full XML support, modules (namespaces), on-demand component loading, tasking/threading, etc. So, we didn't make a big deal out of the beta 1 release. > >Of course, I forgot about that yesterday and blurted out that it was in beta, and now you want to try it. I can't blame you. I would too! > >So, what now? > >We don't want to do an open beta test of /Command because it will become too crazy, and we'll be overloaded. ...snip... >So, here's my suggestion. I have to talk to Dan about it, but, if you really want to test /Command beta 1, and you can: > >1. test it with an actual database (using ODBC), >2. test the external library and shell calls, >3. not just report bugs, but suggest about how they might be fixed, >4. keep it strictly confidential and to yourself, >5. and, you do not care that it only runs on a few platforms right now, > >then we could send you a copy... after Dan approves it. But remember, /Command will be released as a commercial product and, because of the features it supports, it is not intended to be platform independent (like /Core is). > >If you agree to this, then send [EMAIL PROTECTED] an email telling him what kind of project you are doing, and he will get back to you. > >Do not worry if Dan says no. As we add more features to /Command, we'll need more beta testers. Right now we don't have the staff to keep up with the demand and feedback. (Although, we do plan on expanding our staff in a couple months, so if you're looking for a new job...) > >So that's the plan. > >Keep on rebolling, > >Carl Sassenrath >REBOL/Founder > >
[REBOL] REBOL and e-commerce Re:
I like your writing style! Have you considered writing a REBOL book? >Of course, it would be uncivil of me to just brag about the neat ap I wrote >without telling you HOW it works. It's pretty trival; the real headache is >getting the HTML commands to format right--nothing to do with the REBOL >code, HTML is just a pain on good days. ... >Meanwhile, enjoy. REBOL truly is Perl without the complication. > >--Ralph Roberts
[REBOL] Rebol/Command & Sherman Re:(3)
Joe Marshall was working on a compiler based on Rebol 1.0 (the current version is 2.2.0.3.1) I don't know what became of it. http://www.greenspun.com/bboard/q-and-a-fetch-msg.tcl?msg_id=000VTm At 09:28 AM 4/26/00 +0100, you wrote: >[EMAIL PROTECTED] wrote: >> [EMAIL PROTECTED] wrote: >>> # 2 Does anyone know of or have a REBOL compiler, I know of one called >> Sherman, but am unable to locate it. >> >>There's Sherman. And that's about all, I believe. > >What's that? I don't know much about compiler technology, but REBOL seems >quite impossible to compile.. :) > >-- > /Johan Rönnblom, Team Amiga > >In a recent survey, it was found that only 16% of people are normal. > > >
[REBOL] [REBOL] System object documentation Re:
use Bo's browse-system.r script from http://www.rebol.org/utility/index.html either download it, or type these two commands in a Rebol window >> browse: read http://www.rebol.org/utility/browse-system.r >> do browse At 02:36 PM 4/9/00 -0800, you wrote: > >I can't seem to find documentation on the system >object. Dictionary says: >"For advanced discussion on system, see the Users Guide" >But I find little or nothing on the subject. >I also note that even Rebol/View locks up (on Windows NT) >when I attempt >print mold system or probe system. >Where can I find complete documentation? >thanks >tim > > >
[REBOL] [REBOL]Advice in using global values Re:
This time to the right list! At 02:49 PM 4/2/00 -0800, you wrote: >How do I make a value global? That is, so that >it can be "seen" by any code in a file, include >user-define functions? > >I would also welcome advice as to the pro and cons >of using globals, as well as when best to use >them, and what under what circumstances where such >usage would be a bad idea. > >thank in advance. >tim I was wondering about that too. Maybe if I reply to this we can get Allen, Andrew, Gabriele, pekr, Robert, or Volker to give a definitive answer... Just another newbie here, also trying to improve my style... So forgive me if I'm covering the same ground you've been over... Mostly I'm just thinking out loud about this topic, areas where I assume there is a more accurate explanation I've marked with a (?) symbol... If you define words after the Rebol[] block at the head of your script, myscript.r Rebol[] my_global_1: [1 2 3 4] my_global_2: "abcd" and then do %myscript.r my_global_1 and my_global_2 will be added to system/words (?), and available to all scripts that run afterwards in that Rebol window. They will occupy space in memory until you close the Rebol window, regardless if they are used frequently or used rarely. As a programmer you have to keep track of them and their side effects. You don't want to have to deal with more of them than you need to. Throughout your entire program, you can have lots and lots of variables, but the number of variables at any given moment should be low; the variables you don't yet need shouldn't be loaded, and the variables you're finished with should be freed from memory. As Rebol reads through a script, when it encounters begin-block symbol ( "[" ) it sets aside a special place (?) for any variables that are subsequently defined. When Rebol encounters the corresponding end-block symbol ( "]" ) all the variables in that special place are freed(?). So, to keep the number of variables low, you want to insure that variables are defined as late as possible, and freed as early as possible. The way to do this is to divide your script into blocks ( "func" blocks ), and do not introduce variables until you reach the block you need them. Get the user's guide available from do http://www.rebol.com/users-guide.r on the page expfunctions.html, there is a very short section on func blocks, also read about scope. ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ That raises another question. How do you make variables seen by other Rebol windows? Let's imagine that you're doing some very intense calculation (e.g. creating a fractal image, calculating pi, removing noise from a sound file, etc.) and you start your Rebol script on a machine that you know has some kind of limitation (e.g. your account has a time limit, or the hard drive has very little remaining space, or the operating system has low system resources, etc.). You want to stop for now and continue later in a better environment. One way to do this might be to save all your variables to a file, email it to the other machine (or machines, if you have more than one), and then reload the variables later in that better environment, and then run your script again. What are some other alternative ways of running scripts across multiple machines? An eventual goal might be a "Beowulf"-style massively parallel multiple processing system held together by Rebol. > >At 01:19 PM 4/2/00 -0700, you wrote: >>Hi t, >> >>A file! type is a filename with a leading % character. Example: %myfile.r >>%/c/mydir/. A file! may be any type of file, including a directory. >> >>A port! datatype is a low-level i/o abstraction that REBOL uses to >>serialize different types of i/o channels, such as files (here we are not >>talking about the filename, but access to the file's contents), and socket >>i/o. >> >>The access to ports is typically controlled by protocols that define how >>information is read and written to a port, and also commonly implement some >>convenient navigation functions for the port's datastream, such as first, >>next, insert, pick, etc. These functions work in a sensible way on a port! >>datatype. They enable you to treat ports as though they were series values >>(i.e. blocks, paths, hashes ...) to a degree, hence the term serialize is >>used to describe this type of access to i/o channels. >> >>There are some limitations, since not all ports lend themselves to being >>treated as a series effectively with respect to all series! functions. >> >>I haven't been following this thread, so I don't know why you are using >>ports. Generally speaking, it is often more convenient to use higher level >>functions when dealing with files, then accessing them as ports. read, >>write, read/lines, write/append write/lines, write/append/lines, save, >>load, come to mind. All of these functions take a filename (type file!), >>and do not require that you manage the file on the port level, for instance >>with respect to positioning, etc
[REBOL] [REBOL]Formatting variables in strings Re:(3)
Also print ["the numbers are:" test "and" test + 1] print ["the numbers are:" test "and" add test 1] At 11:19 AM 4/3/00 -0800, you wrote: >Thanks: > That did it! >tj >At 10:12 AM 4/3/00 -0800, you wrote: >> >>print reform ["the numbers are:" test "and" (test + 1)] >> >> >> > >
[REBOL] rebol and lisp
What are the Rebol equivalents of Lisp's "atom?" and "quote" ? It appears that given two blocks mylist: [1 2 3] myotherlist: [4 5 6] first mylist is like (car mylist) mylist: next mylist is like (cdr mylist) insert/only mylist myotherlist is like (cons myotherlist mylist)