Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

REBOL-SIMPLE dialect

 [1/18] from: greg::schofield::iinet::net::au at: 10-Aug-2008 21:46


People like me are a pest and I know it. I am nowhere near being a REBOLer, but I am extremely impressed by what little I do know. I have come up from REXX, I script occassionally and only when I need something done, it can be anywhere between 6 months to a year or two between projects. Relearning a language is a major problem, hence the simplicity of REXX is a great asset for that language as well as its natural limit. I can see REBOL doing both and doing it well, mostly because of the power of dialecting. REBOL is full-on, especially with the datatypes, and I admit I just can't really get some pretty simple stuff, for instance I still can't really get my head around blocks (how stupid does that make me!). My suggestion is REBOL-SIMPLE as a very simple dialect of REBOL resembling REXX and heavily Function based, but using as many characteristics of true REBOL to make transition from it, to the real stuff, as seamless as possible. A data-type-less language where as far as the user is concerned every variable is a string (using the functions themselves to sort things out). I would also suggest versions of stem-variables as a simple way to manipulate related data. There are a few things I can suggest, but the idea is just make it simple (ie every "do" has an "end", every "if" etc.,. simople and clear often means verbose scripts). To most of you this will sound like nonsense and just a useless suggestion by a tangental supporter. In the end I will cope with REBOL, I have no doubt of that. However, REBOL needs to recruit users who are not scriptors or programmers in any form, it will become popular if it supplies simple tools to do simple things that easily leads to using REBOL in more complex ways. From what I can work out a new dialect, well designed, could do the trick. Greg Schofield, Perth Australia

 [2/18] from: carl::cybercraft::co::nz at: 11-Aug-2008 18:52


On Sunday, 10-August-2008 at 21:46:48 greg.schofield wrote,
>People like me are a pest and I know it. >I am nowhere near being a REBOLer, but I am extremely impressed by what
<<quoted lines omitted: 8>>
> really get some pretty simple stuff, for instance I still can't really g >et my head around blocks (how stupid does that make me!).
It just means you're not a true block-head yet. ;-) Blocks are just containers, or that's how I look at them. Consider a string. It's just a container for bytes/characters, right? Well a block's just a container for REBOL values. ie... if a = b [do this stuff] IF expects two arguments, the second being a block. And if the first argument returns true, REBOL will evaluate what's inside the block, otherwise it'll ignore it. But that block's no different to this one... blk: [some stuff] Meaning a block with code in is no different to a block with data in. And you'll notice IF's behaving like a function, not a command or statment. And just like a function that accepts a string, it's accepting a block. It's that simple.
>My suggestion is REBOL-SIMPLE as a very simple dialect of REBOL resemblin >g REXX and heavily Function based, but using as many characteristics of t
<<quoted lines omitted: 6>>
>st make it simple (ie every "do" has an "end", every "if" etc.,. simople >and clear often means verbose scripts).
It's an interesting idea, though I'm not a dialect expert and don't know REXX, either. However, wouldn't a simple language like that, (only having string variables, the need for "end"s, etc.), make the transition to REBOL proper just as hard as it's been for you with moving from REXX? -- Carl Read.

 [3/18] from: henrikmk::gmail::com at: 11-Aug-2008 10:45


On Sun, Aug 10, 2008 at 3:46 PM, <greg.schofield-iinet.net.au> wrote:
> People like me are a pest and I know it. > I am nowhere near being a REBOLer, but I am extremely impressed by what l
<<quoted lines omitted: 25>>
> lex ways. > From what I can work out a new dialect, well designed, could do the trick
I think this might not be a good idea (surprise :-)). We all come from different environments of programming and we all have different ways to handle the languages that we've programmed in before REBOL. I often observe people learning REBOL asking, why doesn't it do this or that like C or Java does? Why doesn't it have regexp or why doesn't it do classes like Java does, because the beginner is used to those things from other places. And the truth is that many languages borrow concepts from eachother, where such questions may make sense. For me, an old PHP programmer, the best method was to simply forget everything and start over, and just give 100% in to what REBOL gives you. The "why"s and "why not"s can come when you become good at the language, but they usually don't end up being design flaws, just implementation flaws. Remember that REBOL is designed on its own premises by one man for a long, long period of time, and you must get into the mindset that it doesn't compromise to be like other languages. If you have difficulties with blocks, I'd say, you have problems with 80% of what REBOL is. :-) That's why I think it's a bad idea to start working out something like SIMPLE-REBOL, because the REBOL you have now _is_ supposed to be simple and disguising it as something else would just make learning REBOL much harder. The language is deep enough as it is. -- Regards, Henrik Mikael Kristensen

 [4/18] from: greg::schofield::iinet::net::au at: 11-Aug-2008 23:02


--- Message Received --- From: Carl Read <carl-cybercraft.co.nz> To: rebolist-rebol.com Reply-To: rebolist-rebol.com Date: Mon, 11 Aug 2008 18:52:39 +1200 Subject: [REBOL] Re: REBOL-SIMPLE dialect Carl wrote: It just means you're not a true block-head yet. ;-) True :-0 Blocks are just containers, or that's how I look at them. Consider a string. It's just a container for bytes/characters, right? Well a block's just a container for REBOL values. ie... " if a = b [do this stuff]" IF expects two arguments, the second being a block. And if the first argument returns true, REBOL will evaluate what's inside the block, otherwise it'll ignore it. But that block's no different to this one... "blk: [some stuff]" Meaning a block with code in is no different to a block with data in. And you'll notice IF's behaving like a function, not a command or statment. And just like a function that accepts a string, it's accepting a block. It's that simple. Greg: The flexibility of blocks is one thing, but again you hit on something that caused me a lot of problems, looking for statements/commands which were in fact more like functions. Carl: It's an interesting idea, though I'm not a dialect expert and don't know REXX, either. However, wouldn't a simple language like that, (only having string variables, the need for end"s, etc.), make the transition to REBOL proper just as hard as it's been for you with moving from REXX?" Greg: I think it could be superficially REBOL-like, an entry point language. It would be verbose, and compared to real REBOL slower and much more mechanical. It would have to be designed by someone absolutely at home with REBOL proper, because the purpose of the language/dialect would be in itself a gentle introduction to REBOL proper. In reality as a langauge it would not be doing much besides conditional operations, iterations, assignments and basic maths - everything else would be just formal function calls. Typless data (resolved within functions), line based processing. I don't know how it could elegantly be done, but I was thinking of a three level dialect. That is the top level is REBOL-SIMPLE, in which simple functions could be created, another level of function creation using another set of more low level functions. And finally functions wrapping up real REBOL. Using it at the top level (REBOL-SIMPLE) allows the novice user to quickly arrange a fairly simple over arching script. The function level (next stage down), still wrapped as a dialect, introduces another set of complementary tool/functions allowing users to create more complex functions, and then a function environement that is near enough to pure REBOL. It may well be a silly suggestion, but I would like to have a lanaguage I could introduce to others as a really simple way to get things done, but then allows a fairly seamless extension into more complexity, already wrapped in a simple overcoat so that they can concentrate on creating a fragment at a time and still have a fully functioning script.

 [5/18] from: greg::schofield::iinet::net::au at: 11-Aug-2008 23:24


--- Message Received --- From: Henrik Mikael Kristensen <henrikmk-gmail.com> To: rebolist-rebol.com Reply-To: rebolist-rebol.com Date: Mon, 11 Aug 2008 10:45:36 +0200 Subject: [REBOL] Re: REBOL-SIMPLE dialect Henrik: I think this might not be a good idea (surprise :-)). We all come from different environments of programming and we all have different ways to handle the languages that we've programmed in before REBOL. I often observe people learning REBOL asking, why doesn't it do this or that like C or Java does? Why doesn't it have regexp or why doesn't it do classes like Java does, because the beginner is used to those things from other places. And the truth is that many languages borrow concepts from eachother, where such questions may make sense. I think you might have missed my point. I used REXX as an example because it is a simple no fuss language that I am familiar with. Perhaps that was a mistake. What I should have said was that REBOL-SIMPLE could be a dead simple language that in all the superficial ways looks like REBOL. In otherwords abstract from all the languages and establish the most basic simple to use lanaguage/dialect designed to lead into REBOL proper. The way I am seeing it is as a tool to bring not programmers, or scriptors to REBOL, but computer users and absolute novices to using any language. Iterations, conditionals, assignments, simple maths, using a rich set of functions to do what is required, and typeless data (sorted out at the dialect function level). The beginner you are refering to is someone who is already scripting/programming. REBOL's dialecting ability is potentially an open door to people who have never thought they could program. I am talking of simpliest concievable language that at it simplest level relies on having a huge number of functions that can be called in one line. As I suggested in a previous post addressed to Carl, really it would have to be dialect that supported three distinct levels. The top level (the simplest) producing a framework for using functions, another level, more function orientated a set of useful tools to get functions written easily, and at a slightly more complex level than the top level. The last level just REBOL wrapped as a function to fit in with the rest. It would not be REBOL but a mix. The idea would be that a complete novice could rough out a script that worked and then concentrate on those things as fragments using more more REBOL to get there, without writing a full REBOL script from begining to end. It may prove too complex, it may just be silly, but it might be something. Considering what is being done to the new VID it may fit in well - that is a simple GUI method mixed with a simple scripting framework that fragments the harder parts as required. If that could be cracked, the advantage would be that REBOL would not be recruiting REBOLers from amongst existing programmers and scriptors (though they would come too) but people who need to get their computers doing stuff that they need easily.

 [6/18] from: moliad:gma:il at: 19-Aug-2008 20:06


hi Greg, I will interceed in this discussion just because I understand both where you come from and where Henrik is trying to steer you. when you say: I think you might have missed my point. I used REXX as an example because it is a simple no fuss language that I am familiar with. Perhaps that was a mistake. What I should have said was that REBOL-SIMPLE could be a dead simple language that in all the superficial ways looks like REBOL. I used to program in AREXX, an amiga implementation of REXX, and it was fun and simple, yes. The point of using Rebol IS that its not a programming language in the usual sense. Its an expression language, and the lexical datatypes are an integral part of that which makes it simpler and more productive. Stripping the datatypes would actually make it more obscure, more like a traditional programming language. Rebol's SYNTAX is based on a rich set of datatypes and expressions which manage them, not declarations and statements with implicit meaning of a generic data container like a string, or a lexically shallow datatype like objects. Changing this to make it different, to me, makes no sense in terms of REBOL. To me you don't realize that you've already taken the folds of a programmer. ;-) In REBOL, a string means "text" nothing more. The type has meaning in and of itself, and rebol capitalizes on that. You see, what makes REBOL distinct is not the computing model it has, or its functions, or library richness... its its syntax itself. and since you already learned a language, you don't realize that you are not thinking as a non programmer, hehe. your brain has already aclimated itself to a set of rules and logic and that have become the definition of simple. I find you cannot simplify REBOL's syntax itself ... its REBOL's main particularity. REBOL has very little syntactic rules. what is simpler, a road or an open field? in rebol it doesn't assume which and doesn't force you into any answer... it goes a bit further than that, it thinks that a road is for cars, fields for all-terrain vehicles, and plowed fields for tractors, its inherent in the type of surface, the reason for the surface itself. so you could use any generic surface and walk, but if you're driving a car, why not use a road directly... it will should be faster... no? have fun :-) -MAx

 [7/18] from: moliad:gmai:l at: 19-Aug-2008 20:08


oops, mangled last sentence... it should be faster... no? (unless there's traffic ... hehehe) -MAx

 [8/18] from: carl:cybercraft at: 20-Aug-2008 19:15


On Tuesday, 19-August-2008 at 20:06:52 Maxim Olivier-Adlhoch wrote,
>You see, what makes REBOL distinct is not the computing model it has, >or its functions, or library richness... its its syntax itself.
Thank you MAx. My planned (but not implimented;) reply to Greg would have been something along the lines that leaving out the datatypes in his REBOL-Simple would've been missing the point of REBOL, but I doubt I would've shed much light on the why. So maybe REBOL-Simple shouldn't be a dialect, but just a reduced set of REBOL's default words - and perhaps a few new ones? -- Carl Read.

 [9/18] from: henrikmk::gmail at: 20-Aug-2008 12:01


On Wed, Aug 20, 2008 at 9:15 AM, Carl Read <carl-cybercraft.co.nz> wrote:
> On Tuesday, 19-August-2008 at 20:06:52 Maxim Olivier-Adlhoch wrote, >> >>You see, what makes REBOL distinct is not the computing model it has, >>or its functions, or library richness... its its syntax itself. > > Thank you MAx. My planned (but not implimented;) reply to Greg would have been something along the lines that leaving out the datatypes in his REBOL-Simple would've been missing the point of REBOL, but I doubt I would've shed much light on the why. > > So maybe REBOL-Simple shouldn't be a dialect, but just a reduced set of REBOL's default words - and perhaps a few new ones?
The default word set in REBOL is actually quite simple. Block manipulation is astonishingly simple and elegant compared to, say, manipulating arrays in PHP. This is where REBOL's great design pays off. I think it's a bad idea to restrict the word set of REBOL. It's like saying you want the English language to consist only of 30 words, so we don't have to print dictionaries anymore. That gives you problems with expressability, although it's easy to remember 30 different words. You may have to use more words to express a particular thing, because some words are not available to you, or some things are just impossible to express without having a word for it. A more correct thing would be to weed out all synonyms to reduce the chance of running into a word you don't know. But contrary to English, REBOL does not have many synonyms. It has a few, but they are there because they make sense and increase readability. I think you would actually want to add mezzanines where it makes sense. The cost of having more words to look up in a reference is lesser than having fewer words to remember. Let me illustrate why: Some things are tremendously easy to do out of the box, like simple email validation: if email? somewhere-blabla.com [print "Yes, that's an email"] It doesn't get much simpler than this and most beginners can figure out what's going on there. But some mundane things are much harder, like reformatting dates to a different format. We don't have a: to-rfc-822 25-Jun-2008/04:12:56 Or: to-csv [[1 2 3 4][5 6 7 8]] There's a mezzanine missing to perform these trivial conversions, so the code would appear very simple or "beginnerish". The action behind the function might be very complex. To ask a complete newbie to write out a CSV file of a block of blocks, might be a bit much, so you begin to consider the contrast of having the user to write 20 lines of code to write that CSV string out, versus having only to write the line above. I don't think it's the job of R2 or R3 itself to have built-in CSV file conversion methods as CSV is unfortunately not as generic as we like to think. But I do think the problem is right there. By using mezzanines to simply the language in general you can increase readability and reduce visible complexity. We just have to find sufficiently generic cases to solve and carefully pick which ones to implement. R2.7.6 and R3 have several new mezzanines to handle general cases, like moving elements around in a block with the new MOVE function. Other words that fit the profile, implemented for R2.7.6 and R3: ALSO FIRST+ SHIFT TO-RELATIVE-FILE TAKE Each one either represents a significant amount of code reduction or fills a natural "hole" in the REBOL function list, one where you'd ask why don't we have a function like this? . This is where you want development to happen and it's certain to be discussed in the r3-alpha AltME world where R3 development happens. If you find more generic cases to implement, post them here, and if they are good, they may be discussed for implementation. Better yet: Produce a well-tested and optimized mezzanine and present it here. R3 also has new functions to make certain things much clearer, where you would use an existing word in R2 to do the same thing with less clarity. In R2 you would get the words of a block by typing:
>> first my-object
== [self name address street age] You cannot possibly know this without reading up on extra documentation or asking another developer or stumbling upon it by random. In R3:
>> words-of my-object
== [self name address street age] That's just one little quirk removed to increase clarity drastically and of course it just one function of a whole set that adds partial reflectivity to R3. -- Regards, Henrik Mikael Kristensen

 [10/18] from: btiffin:rogers at: 20-Aug-2008 12:08


On August 20, 2008 06:01:11 am Henrik Mikael Kristensen wrote:
> But some mundane things are much harder, > like reformatting dates to a different format. We don't have a: > > to-rfc-822 25-Jun-2008/04:12:56
Out of the box no, but Christopher Ross-Gill has a beautiful form-date.r posted to rebol.org. Lots of options. And in my humble opinion, inline with the model used by other lingos; an external includeable feature as simple to get at as do http://rebol.org/library/scripts/form-date.r Umm, not that a new user (or even oldtimers) would have any clues to do such a thing, but it is there. But I also agree. Some things in REBOL are just not quite right, out of the box. Lack of simple to use zero padding has always gotten under my skin. I'll be pushing for the current FORMAT R3 mezzanine for R2.7.7 (perhaps with a different name - PAD or ALIGN or JIGGLE or somesuch - until an actual FORMAT dialect is built up). Cheers, Brian

 [11/18] from: tim-johnsons:web at: 20-Aug-2008 10:36


On Wednesday 20 August 2008, Henrik Mikael Kristensen wrote:
> if email? somewhere-blabla.com [print "Yes, that's an email"]
from /Core 2.6.2.4.2 (linux)
>> if email? somewhere-blabla [print "Yes, that's an email"]
Yes, that's an email ;; Bad call! Blows the validation scheme out of the water. :( tim

 [12/18] from: greg:schofield:iinet:au at: 21-Aug-2008 7:42


Max thankyou for your reply. I have no doubt about learning REBOL myself and properly (in the end). Just a small dipping into it proved its worth. I am not convinced I am right in this and your response is a valid one ( I do wish there was more explanation/documentation about the pecularities of REBOL at the conceptual level. I am sure I have read before a descritption of it as an expression language, but in a practical sense it still has not gelled - I keep falling into command/function syntax understandings). I suppose, on reflection, what I am getting may have little to do with programming languages per se, but people gaining more control over their electronic environment. REBOL has this control feature in spades. That is what exicites me about it. But my view is that thise who need to get more control over their computer environment fall into broad categories: 1) Natural or (self)taught programmers. 2) Scriptors, who in many regards could be seen as primitive versions of the former, or extremely developed users. 3) Experienced users who understand things, but never really dip much further into things. 4) Oridinary users, who range from niave step by step program users to very proficient application operators who use what is prepared for them, but often have, due to their experience, very clear ideas on how things should be done to make things easier and more efficient. REBOL very much suits 1 & 2. However,category 3 for me is the vital one, as they are the natural conduits for the experience of those that could be classed as 4. For me who is really in 2. All I need is a little time and experience with REBOL, I have never doubted my ability to get my head around it eventually. At the moment, because of other priorities I just made a conscious decision to wait on R3 and then get into it properly. It parallels my decision to not learn C years ago; an estimate of time and labour required to become proficient, the level of foreknowledge needed to achieve some of things I had in mind, meant an investment in dedicated time that I simply did not have. Many people are in the same position. But it is more than that. In a sense this is not about REBOL or any other language, nor is it about what people set as personal priorities. It is more about shifting power downwards through the categories of comkputer usuage. My view is that applying computers to real world tasks is being constrained by a top heavy approach where category 1 more or less set the parameters for 2,3 and 4. What I believe is that 4, the humble user is a very important person. They are the ones simply using computers to get something done. Because they can do very little else except use what they have in front of them, they have a resevior of needs that cannot be expressed. Category 3, the more savvy user, because they can manipulate the programming environment, develop all sorts of skills, that 4 calls upon when problems crop up. Category 3, the skilled computer user, is: A) locked out of most application programs. B) has no real way to preserve what they know or change the problems they see. C) Can only perform tricks, D) spends a lot of time performing the same tricks over and over again. Scriptors (2) are cut out of most applications like 3 (this is changing but very slowly), they can occassionally add a script to do something otherwise they are more like 3. Shifting the power downwards, the power to actually conrtrol what happens within the computer, to evolve tasks etc to be easier, more flexible, more effieicnt in use (which is not the same as being efficient code). Needs a media of expression. REBOL, has the power, and it has dialects and combining these two has social implications. For the most part category 3 and 2 (by extension) are the social nexus between 4 and 1. If that makes sense - they are positioned to turn whatever 1 produces into something that really works well for 4, enabling ordinary users to express the changes they require and 3 amd 2 to make things happen. On this basis, I hope people see why REBOL could be vitally important in lubricating such a shift in computer usuage. It has the power, to eliminate the big-bloaty fixed application, its environment could go well beyond mere "custermorization" and running "macros". But there is a kanker also, a side effect of REBOL not being all that easy. More often than not the problem of adapting computers to doing stuff, as a productive and not a technical problem. Consists in just two things: i) I have some data that I want to do X with, do X and give it back (best served with a finction rich environment). ii) I want data added in a sequence, a flow problem - best suited to a GUI language that has simple conditional controls. IF a = X then b = Y type thing. i and ii require a language that essentially allows people to focus on immediate problem solving, not writing complex scripts or indeed being very competant scriptors. A REBOL dialect seems the perfect bridge, but it can't be REBOL as such, just a slightly REBOLish form of a procedual language (if that is the right description). REXX had the right mixture for doing this (more or less) but has progressively become over-stretched (ObjectREXX) like Python. Unlike PYTHON which is a do more by adding more language simplicity is overcome by increasing arcane syntax (to get special things done) and increasinging unreadablity - it falls between the chairs, so to speak. REBOL-simple, is just that, simple. To get more from it you go deeper (REBOL proper) keeping the simple bit simple, but extending it in a purely additive way. To me this works, not because REBOL needs simplification (it doesn't) but that categories of users need simplicity in order to express control over their environment and shift things down from the top. Sorry for the long rant. Essentially what I am saying has little to do with REBOL as such, but how REBOL might act to move something else along -- giving users more pratical power over what their computers are doing and how. Thanks Max. Greg --- Message Received --- From: Maxim Olivier-Adlhoch <moliad-gmail.com> To: rebolist-rebol.com Reply-To: rebolist-rebol.com Date: Tue, 19 Aug 2008 20:06:52 -0400

 [13/18] from: carl:cybercraft at: 21-Aug-2008 7:42


On Tuesday, 19-August-2008 at 20:06:52 Maxim Olivier-Adlhoch wrote,
>You see, what makes REBOL distinct is not the computing model it has, >or its functions, or library richness... its its syntax itself.
Thank you MAx. My planned (but not implimented;) reply to Greg would have been something along the lines that leaving out the datatypes in his REBOL-Simple would've been missing the point of REBOL, but I doubt I would've shed much light on the why. So maybe REBOL-Simple shouldn't be a dialect, but just a reduced set of REBOL's default words - and perhaps a few new ones? -- Carl Read.

 [14/18] from: carl:cybercraft at: 21-Aug-2008 18:12


On Wednesday, 20-August-2008 at 10:36:46 Tim Johnson wrote,
>On Wednesday 20 August 2008, Henrik Mikael Kristensen wrote: >> if email? somewhere-blabla.com [print "Yes, that's an email"]
<<quoted lines omitted: 3>>
>;; Bad call! Blows the validation scheme out of the water. :( >tim
Well spotted. Plus, given this was supposed to be an easy example for new users to figure out, isn't it reasonable to assume that the questionmark is part of REBOL's syntax and not just a character that's part of a word? Afterall, colons are added to both the beginning and ends of words in REBOL, so it stands to reason that a questionmark on the end of one suggests they can be added to all words. ie...
>> name1: "John"
== "John"
>> name2: "Janet"
== "Janet"
>> John? name1
== true
>> John? name2
== false
>> Janet? name2
== true Makes sense to me... ;-) Yes, facetious, but a reasonable assumption for a beginner to make, unlike assuming that a questionmark is part of a word. -- Carl Read.

 [15/18] from: greg:schofield:iinet:au at: 21-Aug-2008 18:40


Henrik sorry I did not reply earlier. I have read through your post twice, some things I get and others I don't. But what you suggest could be way better than what I had in mind. I cannot really judge, if you read my post to Max, I try to explain that it is not just a matter of making it easier, but a matter of extending REBOL solutions to different classes of computer users. The illustration you use (R3):
>> words-of my-object
== [self name address street age] Is a great example of something very different to what I had in mind, that really helps. Your CVS example as well as being a more function orientated approach is close to what I had in mind, and of course you are right it is all about getting the right level of generalization. If the thing is thought about in terms of engaging a different level of computer user, without confining them to a dumbed-down version, but as a legitmate doorway in REBOL that to me seems to be a real problem that is need of a solution. I will not clutter up this elist with more general stupidities than I can help, I would like to encourage people to think along the lines of REBOL-simple as a legitimate goal. I am sure if a real solution is made it will not resemble anything much I have in mind (which is a good thing). When you say: By using mezzanines to simply the language in general you can increase readability and reduce visible complexity. We just have to find sufficiently generic cases to solve and carefully pick which ones to implement. I feel you are spot on. Most of it is about removing visible complexity, and should not be a part of R3 itself. If the right generic mix is produced then that is a very simple way for novices to get started doing non-trivial scripting in a simple way (not necessarily a code efficient way -- but computers are faster these days, perceived speed is not often effected). Bundle this up in a sensible and comprehensible way and you have the everybody's interface to REBOL and no barrier to using REBOL proper. Thank you Henrik. Greg Schofield Perth Australia --- Message Received --- From: Henrik Mikael Kristensen <henrikmk-gmail.com> To: rebolist-rebol.com Reply-To: rebolist-rebol.com Date: Wed, 20 Aug 2008 12:01:11 +0200

 [16/18] from: tim-johnsons:web at: 21-Aug-2008 7:18


On Wednesday 20 August 2008, Carl Read wrote:
> Well spotted. Plus, given this was supposed to be an easy example for new > users to figure out, isn't it reasonable to assume that the questionmark is > part of REBOL's syntax and not just a character that's part of a word? > Afterall, colons are added to both the beginning and ends of words in > REBOL, so it stands to reason that a questionmark on the end of one > suggests they can be added to all words. ie...
Hiya Carl: Might be good to check all type predicates for R3. Myself I've made use of only a few of the datatypes - but with REBOL3 coming along would be a good time to review them. Know that all tests are correct would "harden" rebol. BTW: I noticed something interesting:
>> source email?
email?: native ["Returns TRUE for email values." value [any-type!] 43] Us "old hands" know that 'native means that this function is coded in C and compiled into the binary _But_ what does the number 43 mean? again email?: native ["Returns TRUE for email values." value [any-type!] 43] -------------------------------------------------------------------------------------------------------^^ thanks tim

 [17/18] from: btiffin:rogers at: 22-Aug-2008 15:19


I believe it's an index into the datatype array (block, REBOL funky quick ref structure, dunno the exact term to use). source op? ends in 8, block? in 47, native? in 5 etc... Cheers, Brian On August 21, 2008 11:18:46 am Tim Johnson wrote:

 [18/18] from: carl:cybercraft at: 22-Aug-2008 23:12


On Thursday, 21-August-2008 at 7:18:46 Tim Johnson wrote,
>> Well spotted. Plus, given this was supposed to be an easy example for new >> users to figure out, isn't it reasonable to assume that the questionmark is
<<quoted lines omitted: 7>>
> a few of the datatypes - but with REBOL3 coming along would be a good > time to review them. Know that all tests are correct would "harden" rebol.
I've not touched R3 yet. Will wait until I've actually a need for it, since I've no time just to play with it. (Plus I loath software upgrades. Seems there's one or two a week these days if you've a reasonable amount of software installed, and with them all having the potential to waste hours of your time should they stuff something up...)
> BTW: I noticed something interesting: > >> source email? >email?: native ["Returns TRUE for email values." value [any-type!] 43] > >Us "old hands" know that 'native means that this function is coded in C >and compiled into the binary _But_ what does the number 43 mean? >again email?: native ["Returns TRUE for email values." value [any-type!] 43]
Seems all the datatypes have a number...
>> source file?
file?: native ["Returns TRUE for file values." value [any-type!] 42] so probably something as simple their addition to REBOL. Is there to be a video datatype in R3? I see there's a video tag planned for HTML 5. Hopefully REBOL plans to keep up. -- Carl Read.

Notes
  • Quoted lines have been omitted from some messages.
    View the message alone to see the lines that have been omitted