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

Rebol Tech, please answer. Two questions.

 [1/36] from: rebol:keithdevens at: 11-Sep-2000 19:53


Hey list, sorry to be annoying. I've asked these two questions before, but I've never really gotten an answer to them, and they're bugging me! 1. I'll just give an example. blk: [11 22 33 44 55] print skip blk 3 44 55 Why not (print skip 3 blk) instead of (print skip blk 3)? What I'm getting at is that it seems like it would be easier to chain these things together if the arguments were in a different order (block last). For instance:
>> blk: [1 2 3 4 5 6 7]
== [1 2 3 4 5 6 7]
>> elem: skip skip blk 2 3
== [6 7] If you want to do nested skips, the 'skips keep piling up in the front and the numbers of elements to skip keep on piling up in the back. It seems more natural to me for it to be:
>> blk: [1 2 3 4 5 6 7]
== [1 2 3 4 5 6 7]
>> elem: skip 2 skip 3 blk
== [6 7] Can any of the Rebol Tech guys explain why they made it this way? You guys must have thought of this, and I'd be really interested to hear why you chose against it. Pleeeese let me know! 2. The lack of associative arrays in Rebol has bugged me from the beginning. Last time I e-mailed the list about it I got suggestions for emulating them with blocks. Last night I thought that I could just use objects to do what I want. obj/index is just as good to me as obj{index}. The only thing is that I don't know of a way to add refinements to objects dynamically. Always creating a new object from the old one when I want to add a refinement doesn't appeal to me. I know RT must have made a conscious decision not to include associative arrays in the language, I'm just wondering why. Blocks supercede their functionality, etc. Please let me know. I'd be really interested to hear the reasoning behind this. Thank you very very much. Keith P.S. One of the things that could go in a Rebol FAQ in a section entitled For People Coming From Other Languages could be questions like the ones I've asked above. I could imagine a question like: "I come from a Perl background. I'm used to using hashes for everything. What do I do in Rebol?"

 [2/36] from: al:bri:xtra at: 12-Sep-2000 13:12


Keith wrote:
> Why not (print skip 3 blk) instead of (print skip blk 3)?
Here's a 'skp function that does this as an alternative to 'skip.
>> skp: func [
[ {Returns the series forward or backward from the current position.} [ offset [number!] "Can be positive, negative, or zero." [ series [series! port!] [ ][ [ skip series offset [ ]
>> blk: [1 2 3 4 5 6 7]
== [1 2 3 4 5 6 7]
>> elem: skp 2 skp 3 blk
== [6 7] As for why it's like this, if you compare it to 'pick: pick blk 4 it's very similar to: skip blk 4 So I suggest that it seemed natural to continue it with 'skip? Andrew Martin ICQ: 26227169 http://members.ncbi.com/AndrewMartin/ http://members.xoom.com/AndrewMartin/

 [3/36] from: rebol:keithdevens at: 11-Sep-2000 21:43


It's funny, I thought of writing functions like that too. The only thing is, as you very appropriately point out, Rebol is very consistent in this. It's not only 'skip that this applies to, but 'pick, 'select, 'find, etc. As far as I know, every function that deals with a series, extending to words like 'insert and 'append, takes the series first, and then the modifier (whether it's an index to return, something to append or insert, a value to select on, a value to find, you get the idea). The language was obviously designed with this as a conscious choice. I'm dying to know what the reasoning was. Personally, and especially in light of Rebol's desire to be similar to a natural language, I think it feels much more natural to put the series last. For examples: English version: append a value to a series: Rebol version: append 'value 'series English version: insert a value into a series: Rebol version: insert 'value 'series English version: find a value in a series Rebol version: find 'value 'series and on and on. Could it be possible that this way is more natural to me only because I'm a native English speaker? Keith

 [4/36] from: allen:rebolforces at: 12-Sep-2000 12:06


Hi Keith, If you want an answer from RT, you can send your question to feedback. do http://www.rebol.com/feedback.r And choose (2) General Question. But in terms of skip. this may help. To quote Jeff The typical REBOL parameter arrangement is that which is operated on followed by the things to operate on it with. Once you are used to recognising this pattern, you may find that nested skips are easy enough to read and use, as they are. Cheers, Allen K

 [5/36] from: jeff:rebol at: 11-Sep-2000 18:05


Howdy, Kevin: (REBOL also uses international date standards.)
> The language was obviously designed with this as a > conscious choice. I'm dying to know what the reasoning > was.
That's a Q. only Carl can really A. He's been figuring out how REBOL should work for more than a decade and a half, so that question is pretty deep in the philosophy. What you say about deliberateness is true about most (but not all) things in REBOL. Here's two of those kinds of questions I know the "answer" to, but let's see if any one else has some ideas: Why is semicolon (;) the REBOL comment character? Why are square brackets ([]) used for REBOL blocks? What do the above reasons have in common?
> Could it be possible that this way is more natural to me > only because I'm a native English speaker?
Holger would probably do [answer :your-question 'yes] :-) -jeff

 [6/36] from: allen:rebolforces at: 12-Sep-2000 13:42


>Here's two of those kinds of questions I > know the "answer" to, but let's see if any one else has some > ideas: > > Why is semicolon (;) the REBOL comment character? > Why are square brackets ([]) used for REBOL blocks? > What do the above reasons have in common?
Oooh a quiz!! No idea..But from a usability point of view, is it just a coincedence that these chosen REBOL keys are all together for easy use of the right hand? Only need a few keys to do most things on a REBOL keyboard ; ' [] shifted provides us with :"{} all datatypes! are grouped along the top of the keyboard with the maths operators too. (But this doesn't hold true for all non US keyboard layouts though does it?) Cheers, Allen K I'm left handed and this layout seems natural to me, is it the same for right handers?.

 [7/36] from: bobr:dprc at: 12-Sep-2000 0:34


both of these topics have been seen before. one of them recently. At 07:53 PM 9/11/00 -0400, [rebol--keithdevens--com] wrote: ....<snip>
>The only thing is that >I don't know of a way to add refinements to objects dynamically.
here is its X-selma number: 345023 aka http://rebol.org/userlist/archive/345/023.html
>Always >creating a new object from the old one when I want to add a refinement >doesn't appeal to me.
it bugs me too, further it makes incorporation of that object into some other(s) a chore to track if it is linked in multiple places. does anyone have an elegant/quick way to see who refers to an object? (IE who else has an == link to the same self' value?)
>P.S. One of the things that could go in a Rebol FAQ in a section entitled >"For People Coming From Other Languages" could be questions like the ones >I've asked above. X-selma number: 81447 with respect to folks (like
me) coming from other languages. aka http://rebol.org/userlist/archive/81/447.html
>I could imagine a question like: "I come from a Perl >background. I'm used to using hashes for everything. What do I do in Rebol?"
I want to invite you to start such a thread. I have a personal filter set to look for messages that have "How do I" in the subject line so you will definately get my attention with those. [and likely my 2cents too] ;# mailto: [bobr--dprc--net]

 [8/36] from: rishi:picostar at: 11-Sep-2000 22:03


well... I think the ";" is used as a comment so people who are comfortable with languages like java, c, C++, etc can still end statments with a semi-colon if they want to. the rebol interpreter will just ignore it. ei. print "hello"; ask "how do you do"; as for the brackets...[]... well when together, they look like blocks...don't they take a look below --[] -[][] [][][] it looks like i stacked blocks on top of each other. My guess is carl chose [ and ] for blocks because it looks like a block when put together... Rishi

 [9/36] from: rishi:picostar at: 11-Sep-2000 22:08


shoot. just realized that another reason for the comment like that is because: (;) looks like a person winking (sideways). you usually wink when you have a secret. Code behind a wink is secret to the interpreter! cool. my block theory still stands though... (I'm sure all you rebol pioneers know all this stuff...) Rishi

 [10/36] from: rebol:techscribe at: 12-Sep-2000 1:12


Hi Keith, you wrote:
>blk: [11 22 33 44 55] >print skip blk 3 >44 55 > >Why not (print skip 3 blk) instead of (print skip blk 3)?
My $0.02: Two related explanations. Because: 1. REBOL is a mind-mapping language. 2. Consistency makes REBOL easier to learn and to remember. Somewhat longer explanations of what I mean follow: 1. skip 3 blk skip 3 ... Why 3? Because the element I'm interested in is in the third position. It is? How do I know that? Because I know what block blk contains, and therefore I know that the element is in some position in that block, namely, in the third position. You notice that I can only determine the appropriate skip distance, after I've determined in which block I'm skipping around. I already thought of block blk, when I set out to determine the correct value for the skip distance. Therefore, let me do first things first, I might as well type what's first on my minde, "blk", be done with it, and then move on to think about the skip-distance, which is derived from knowing that I'm skipping around in the block "blk". In other words, REBOL enables me to program like I think. At the point in time at which I choose 3 as the skip distance, I must already know that I will be skipping in the block blk, otherwise I would have no way of of determining how many elements to skip. So I first type what must be first on my mind, blk, and then whatever is next, "3". It must be "next on my mind" because to determine that 3 is the correct skip distance, I must already know that I'm skipping in block blk. But I can know that I'm skipping in block blk, because it contains the element I'm interested in, before I determine where exactly the element is located in the block, i.e. before I determine the correct skip distance. skip blk 3 makes "thinking in REBOL" more natural, because it is more similar to the way the mind works anyway. "skip 3 blk" separates thinking about the problem from formulating it as REBOL code. In my mind blk must have come first, because I figured out that the skip distance is 3 (skip blk 3), but if REBOL's notation was "skip 3 blk", then in REBOL the relative position of the skip distance and the block would be exactly reversed, compared to how thinking works. Take 2: The short version: Two-argument functions are single-argument functions with an additional argument. Long version: Observation: You use the word print in your example (print skip ...). The print function takes only one argument. This is also true for other functions, such as ask, or form, for instance. One-argument functions are simpler than two-argument functions. Examples: form blk print blk ask form blk empty? blk This is also true for all type-related functions: type? blk block? blk I can prototype these examples by providing a pattern: The pattern is: 1. First I answer the question "What am I doing?", and then 2. I answer the question "Who am I doing this to?" Question: "What am I doing?" Answer: "print" Question: "Who am I doing this to?" Answer: "blk" Question: "What am I doing?" Answer: "form" Question: "Who am I doing this to?" Answer: "blk" We have a pattern. Once the human mind has grown accustomed to a pattern, it's easier to acquire new knowledge, by extending the known pattern. We want to add an element (a second argument) to the existing single-argument-function pattern. Where are we going to place this additional new element? To answer this question we must ask, "Do there exist pattern derivation rules that are more easily learned than other rules?" The answer in this case is that "fewer rules" are more easily learned than "more rules". Follow-up question: But what if I express several "more rules" in a single fewer rules rule, albeit a complex rule? The answer is that a complex rule does not count as a "fewer" rule. A complex rule counts as much as the number of its constituent elementary rules. A complex rule stands in a similar structural relationship to elementary rules, like a molecule to the atoms it is composed of. The molecule ways as much as the sum of the atoms it is composed of. A complex rule counts as much as the number of elementary rules it is composed of. The pattern "skip 3 blk" compared to "print blk" If we place the new, second argument between the function name and what originally was the first argument ("Who are we doing it to?"), our derivation consists of three rules: 1. Remove the first argument from its previous position; 2. Add a new element (the new argument) at the removed argument's position; and 3. Add the previous first argument at its new second-argument position. I can express rules 1 .. 3 in one complex rule: "Insert the new element between the first and second elements of the old pattern". But this is not an elementary rule. This is a complex rule. The complexity of this rule is signalled by the words "Insert" and "between the first and second". To determine the complexity of a derivation rule, we must formulate the rule in terms of its rule "atoms", its constituting elementary rules. "Insert ... between the first and second" breaks down into the three elementary rules listed above. It's apparent that adding the new argument at the end of the single-argument pattern is a much simpler derivation because it consists of only one rule (and one none-rule:) 0. none-rule: Leave the single-argument pattern undisturbed. 1. new-rule: Add the new, third argument, behind the existing pattern. To emphasize this pattern aspect, let's invent a new skip function, skip-one: skip-one: func [series] [ skip series 1 ] Now we could continue to use the established pattern: skip-one blk Question: "What am I doing?" Answer: "skip-one" Question: "Who am I doing this to?" Answer: "blk" To skip 3 items: skip-one skip-one skip-one blk But we want to be more flexible. We want to skip any amount of elements in a series, not just one. And we don't want to be forced to repeat the same operation over and over again. That's simple, but exhausting. We must provide a second argument, the skip-distance. Yet we want to remain consistent, and keep things simple, by building on the established pattern, namely, the pattern of single-argument functions. To put it differently: Since everyone, who programs in REBOL will occassionally use single-argument functions, we want to implement two-argument functions to be as similar to single-argument functions as possible. Like this you learn one thing, the pattern of single-argument functions, and at the same time you have learned most of another thing: two-argument functions. Another aspect: Whenever we use single-argument or two-argument functions, we are reinforcing a known pattern that is common to both functions. We can, therefore, more easily remember the pattern of single-argument and two-argument functions. So we avoid rearranging the pattern, and instead we limit ourselves to simply adding the new element to the end of the established pattern. We retain the sequence of questions and answers, and add a third question behind questions and answers we would be dealing with anyway, if we were dealing with a single-argument function. skip blk 3 The first two questions remain the same: Question: "What am I doing?" Answer: "skip" Question: "Who am I doing this to?" Answer: "blk" New Question: Question: "How much of it am I doing?" Answer: "3" Note that the first two questions and answers clarify the most important aspects: What am I doing, and who am I doing it to. The third question adds another important piece of information, but that information is derived from the first two pieces of info. Hope this helps, ;- Elan [ : - ) ] author of REBOL: THE OFFICIAL GUIDE REBOL Press: The Official Source for REBOL Books http://www.REBOLpress.com visit me at http://www.TechScribe.com

 [11/36] from: jelinem1:nationwide at: 12-Sep-2000 8:59


Why is semicolon (;) the REBOL comment character? *shrug* Because it's an easy key to type (find) on a keyboard? Why are square brackets ([]) used for REBOL blocks? [ ] IMO are more readable than ( ) (because they are bolder) or { } (because the graphics are simpler). What do the above reasons have in common? NO SHIFT KEY! WOOHOO! This was extremely noticeable after I started programming in Perl. - Michael Jelinek

 [12/36] from: jeff:rebol at: 12-Sep-2000 7:17


Howdy Bob:
> >Always creating a new object from the old one when I want > >to add a refinement doesn't appeal to me.
<<quoted lines omitted: 4>>
> an object? (IE who else has an == link to the same self' > value?)
Here's a way: Every object has a block of referring objects and referred to objects. When ever you link to an object, you add yourself to that object's referring block. When ever you unlink, you remove yourself from their referring block. Etc.. a: make object! [referring: copy [] points-to: copy []] b: make object! [ referring: none points-to: reduce ['a a] append a/referring reduce ['b self] ] link-obj: func ['from 'to /obj1 /obj2][ obj1: get from obj2: get to append obj2/referring reduce [from obj1] append obj1/points-to reduce [to obj2] ] unlink-obj: func ['from 'to][ remove/part find obj2/referring from 2 remove/part find obj1/points-to to 2 ] Now you can: b/points-to/a/referring/b/points-to/a etc... So we're making a graph? Maybe start a "how do I represent graphs in REBOL" thread? :) By the way: The way we used the two blocks above is a general mechanism for easily adding and removing refinements to an object: foo: make object! [ a: b: none x-refs: copy [] ] Let's add 'c: append foo/x-refs [c 99] ;-- can also bind things into foo here foo/x-refs/c Removal is similarly easy: remove/part find foo/x-refs 'c 2 Blocks, the universal dynamic container, are best for things where you want to add and remove from frequently. In REBOL, objects are less dynamic than blocks. Use them together and make the world a better place. -jeff

 [13/36] from: jeff:rebol at: 12-Sep-2000 7:27


As Carl once related to me: Semicolon was not picked because it's the LISP comment character, the square brackets are not in REBOL because they're found in FORTH, the reason for their use is based on their position on the keyboard (home row) and the fact that they are UNSHIFTED!! People will be typing these things ALOT so they'd better be conveniently located and easy to hit. REBOL doesn't want your fingers to hurt. That's just an indication of the attention to detail that is the REBOL standard. Everyone essentially got the answer right-- A+! :-) -jeff

 [14/36] from: holger:rebol at: 12-Sep-2000 9:01


On Tue, Sep 12, 2000 at 07:27:07AM -0700, [jeff--rebol--net] wrote:
> Semicolon was not picked because it's the LISP comment > character, the square brackets are not in REBOL because
<<quoted lines omitted: 3>>
> so they'd better be conveniently located and easy to hit. > REBOL doesn't want your fingers to hurt.
The fingers of Americans anyway. German fingers are supposed to hurt, I guess :-). On a German keyboard the ";" is shifted. It is on top of the "," key. The < /">" are on a separate key. It is even worse for "["/"]", because a German keyboard does not have these characters directly accessible at all. It has A-umlaut and U-umlaut in those places (corresponding to the ASCII character positions of "["/"]", which in the now-obsolete German 7-bit ISO encoding had been replaced with those umlauts). Most keyboards let you enter "["/"]" as Alt-A-Umlaut and Alt-U-Umlaut, but, of course, pressing the Alt key is even more awkard than pressing the Shift key. There are even some older computer systems which don't have "["/"]" in their German versions at all (e.g. German localized versions of 8-bit systems like Commodore-64) or which don't usually provide keyboards that have "["/"]" keys on them (e.g. Wang VS).
> Everyone essentially got the answer right-- A+! :-)
Or "1+" in German grades. Of course everyone's grade for "international awareness" would be a little lower :-). -- Holger Kruse [holger--rebol--com]

 [15/36] from: jeff:rebol at: 12-Sep-2000 8:14


Howdy Holger:
> > REBOL doesn't want your fingers to hurt. > > The fingers of Americans anyway. German fingers are > supposed to hurt, I guess :-).
Utilitarianism: Do the thing that will make the most people happy. If German keyboards were the most common, then I'm sure we'd all be programming in umlauts instead! (And you'd have to hit shift-alt-[ to get an umlaut on the less common American layout keyboard.. haha).
> > Everyone essentially got the answer right-- A+! :-) > > Or "1+" in German grades. Of course everyone's grade for > "international awareness" would be a little lower :-).
Allen did allude to other keyboard layouts of different nationalities. The Australians always get high points for international awareness. -jeff

 [16/36] from: t_degrav:rhrk:uni-kl at: 12-Sep-2000 12:33


Hi Elan, just a small observation [rebol--techscribe--com] wrote:
> To emphasize this pattern aspect, let's invent a new skip function, > skip-one:
...
> skip-one blk
Maybe skip-one isn't the best choice of name here because skip-one blk and skip one blk do at least _look_ very similar, but the second line is actually what you were argumenting against... ;-) By the way, your explanation is very reasonable and I won't say anything against it, but Keith is right that Rebol isn't that close to natural languages in this case) and I'm not even a native English speaker myself ;-) But these similarities are what RT emphasizes aren't they? Tom

 [17/36] from: ryanc:iesco-dms at: 12-Sep-2000 10:27


>> thing: [1 2 3 4 5 6 7 8 9]
== [1 2 3 4 5 6 7 8 9]
>> this: func [value] [:value] >> to: func [value] [:value] >> skip this thing 5 ;places
== [6 7 8 9]
>> change this thing to 5000
== [2 3 4 5 6 7 8 9]
>> this thing
== [5000 2 3 4 5 6 7 8 9]
>>
--Ryan

 [18/36] from: slong:customcpu at: 12-Sep-2000 9:30


What was the ISO encoding did Amiga use for the A2000 systems? Using Rick Stiles' Uedit, I got all sorts of useful characters to print on inexpensive Canon BJ200 inkjets, even though they were not well supported. Things like the little superscript "o" for degrees, or the paragraph symbol were available with an "Amiga" key + character-key. You just had to know the translation table. For Greek "theta" (O+/) I had the choice of either lowercase or uppercase. XCad took them OK, and displayed/plotted them cleanly, either from direct keyboard input or when importing a text file. I haven't yet gotten this PC keyboard to do this on my SuSE Linux system :-(( Is it just ignorance on my part? VariCad <http://www.varicad.com> uses the AutoCad "special character" system: "~"+2 for the o+/ "theta". You can't have an uppercase style of that one! With such a limited set of special characters, they don't understand my desire for the capability left behind in the Amiga. Stanley Long Anchorage [holger--rebol--com] wrote:

 [19/36] from: holger:rebol at: 12-Sep-2000 11:09


On Tue, Sep 12, 2000 at 09:30:22AM -0800, [slong--customcpu--com] wrote:
> What was the ISO encoding did Amiga use for the A2000 systems?
Amiga did not use ISO at all. The ISO 7-bit encodings are obsolete now. They were used on 8-bit machines only, back in the times when the overall character set only had 7 bits, and the high bit was used for something different (parity, inverted output, italics etc.). AmigaOS uses ECMA-Latin-1/94, the official international character set in the western world. It includes all characters that were formerly used in the various ISO country-specific encodings. MacOS and most other operating systems developed around that time use the same encoding. Exceptions were HP (for Laserjet), Wang (WISCII), MS-DOS (PC-8) and a few others. Nowadays Unicode and UTF-8 are prefered. -- Holger Kruse [holger--rebol--com]

 [20/36] from: rishi:picostar at: 12-Sep-2000 10:43


I didn't get that right...oops...probably because I use the dvorak keyboard layout rather than qwerty... Rishi

 [21/36] from: rebol:keithdevens at: 12-Sep-2000 15:13


Yay! Another Dvorak user! :-D

 [22/36] from: rebol:techscribe at: 12-Sep-2000 14:09


Hi Jeff, why not include an optional key mapping for system/ports/input? Perhaps system/ports/input/state/misc could be used for this, if it is not already being used for something else? Then the input of Umlaut characters could be replaced by brackets before they are passed to REBOL for processing and to the console output. At 08:14 AM 9/12/00 -0700, you wrote:
> Howdy Holger: >> > REBOL doesn't want your fingers to hurt.
<<quoted lines omitted: 14>>
> international awareness. > -jeff
;- Elan [ : - ) ] author of REBOL: THE OFFICIAL GUIDE REBOL Press: The Official Source for REBOL Books http://www.REBOLpress.com visit me at http://www.TechScribe.com

 [23/36] from: rishi:picostar at: 12-Sep-2000 14:07


while we are on the subject of dvorak.... For those who don't know, dvorak is an alternate and superior keyboard layout than qwerty. Qwerty was actually designed to slow down the typist (solution to problem of early type writers jamming) by spreading commonly used keys away from the home row. The guy who invented dvorak, Dr. Dvorak, spent half his life or so doing it... It places most commonly used keys close to home and balances load between left and right hands equally. While debatable, I find it faster, more accurate, and definately more comfortable on my hands (all my hand pain from using keyboards went away after switching to dvorak). And you don't need to by new keyboard. Most OS's (including beos, windows, macos, amiga, etc...) have option built into setting to allow you to remap keyboard to dvorak. anyway, here is a dvorak url if anyone is interested : http://www.mwbrooks.com/dvorak/ It works really well with rebol... (hey, if i was in a dvorak message board or qnx discussion board and the topic of programming languages came up...I would definately give REBOL a plug!) Rishi

 [24/36] from: rebol:techscribe at: 12-Sep-2000 14:24


Hi Tom, you wrote:
>[rebol--techscribe--com] wrote: >> To emphasize this pattern aspect, let's invent a new skip function,
<<quoted lines omitted: 5>>
>skip one blk do at least _look_ very similar, but the second line is >actually what you were argumenting against... ;-)
:-).
>By the way, your explanation is very reasonable and I won't say anything >against it, but Keith is right that Rebol isn't that close to natural >languages in this case) and I'm not even a native English speaker myself ;-) >But these similarities are what RT emphasizes aren't they?
Sometimes natural languages are weird. They are not always all that consistent. You can find examples that promote skip 3 blk. You can also find examples that promote skip blk 3. Example: Would you prefer Jane hit twice John. Or Jane hit John twice. REBOL skip blk 3
>> Jane hit John twice.
Jane ==> hits John. hits John.
>> REBOL skip blk 3
== [4 5] hit: func ['what repeat] [ what: join what "." loop repeat [print [" hits" what] ] ] Jane: does [ print "Jane ==>" ] twice.: 2 ;- Elan [ : - ) ] author of REBOL: THE OFFICIAL GUIDE REBOL Press: The Official Source for REBOL Books http://www.REBOLpress.com visit me at http://www.TechScribe.com

 [25/36] from: petr:krenzelok:trz:cz at: 13-Sep-2000 11:20


[rebol--techscribe--com] wrote:
> Hi Keith, > you wrote:
<<quoted lines omitted: 13>>
> therefore I know that the element is in some position in that block, > namely, in the third position.
OK Elan, I don't feel myself so experienced as you surely are, but how e.g. 'save fits your rebol language philosophy? save %where what ... It was the most confusing thingy once I first came to the language. Maybe just czech language mind mapping works a little bit differently :-), but imho we first think of what we want to save - as to save the content is on some purpose - e.g., prevent loosing data, and only then we decide, where to store it, as it is just secondary problem ... So? :-) Thanks, -pekr-

 [26/36] from: al:bri:xtra at: 13-Sep-2000 21:34


pekr wrote:
> OK Elan, I don't feel myself so experienced as you surely are, but how
e.g. 'save fits your rebol language philosophy?
> save %where what ...
I'm not Elan, but I thought I could answer this. It's based on 'read and 'load: read %where load %where To extend to 'save, as based on Elan's reasoning: save %where what the extra stuff is on the end. Andrew Martin Not Elan... ICQ: 26227169 http://members.ncbi.com/AndrewMartin/ http://members.xoom.com/AndrewMartin/

 [27/36] from: g:santilli:tiscalinet:it at: 13-Sep-2000 12:03


[jeff--rebol--net] wrote:
> REBOL doesn't want your fingers to hurt.
But here I need shift for the semicolon, and "ALT GR" for the square brakets (on the Amiga it's better, the [] don't need shift on the keypad). :-( Should I buy an US keyboard? :) Regards, Gabriele. -- Gabriele Santilli <[giesse--writeme--com]> - Amigan - REBOL programmer Amiga Group Italia sez. L'Aquila -- http://www.amyresource.it/AGI/

 [28/36] from: petr:krenzelok:trz:cz at: 13-Sep-2000 12:21


[g--santilli--tiscalinet--it] wrote:
> [jeff--rebol--net] wrote: > > > REBOL doesn't want your fingers to hurt. > > But here I need shift for the semicolon, and "ALT GR" for the > square brakets (on the Amiga it's better, the [] don't need shift > on the keypad). :-( > > Should I buy an US keyboard? :)
:-))) well, let me add Czech scenario: AltGr + F = [ AltGr + G = ] uh oh, the key on the left side of "1" gives me semicolon ... Well, I can turn US keyboard by certain key combination, but ... :-) -pekr-

 [29/36] from: joel:neely:fedex at: 13-Sep-2000 7:44


I think that there's a very practical pseudo-ergonomic reason why all of these "verbs" have their arguments in the order: take-action upon-this-thing with-these-other-things ... To use Petr's example of save %where what the overwhelmingly most likely (IMHO) case is that %where is a file or a word that references a file, and that the what expression can be arbitrarily more complex. (I.e., more likely than to have a complex expression that resolves to the file being written into, with a very simple expression for the data value.) Speaking for myself, about the most complex expression I normally use for the target of save or write is something resembling write to-file string-expression data-values whereas it's very common for me to have something of the form write %some-file complicated-expression-to-evaluate-... ...into-the-data-vaue(s)-to-be-written-to-the-file-... ...previously-named Given the absence of argument list delimiters, long involved expressions (and, hey! this is an Expression-Based language, right ;-) can require careful attention to layout/typography to be readable. This goal is enhanced by placing the shortest complete parts first. DISCLAIMERS: 1) I have no idea whether this was a deliberate choice in the design of REBOL. But it makes sense to me. 2) I'm well aware that our German friends (for example) a literature whose style long, sophisticated utterances with verbs deferred to the end includes have. So all of the above conjecturing very likely culturally influenced has been. Perhaps those of us whose native language American or British is a tendency toward attention deficit disorder have. -jn- [Petr--Krenzelok--trz--cz] wrote:

 [30/36] from: agem:crosswinds at: 13-Sep-2000 17:01


[Petr--Krenzelok--trz--cz] wrote on 13-Sep-2000/11:20:13+2:00
> [rebol--techscribe--com] wrote: > > Hi Keith,
<<quoted lines omitted: 27>>
> fits your rebol language philosophy? > save %where what ...
action destination source1 source2 .. not block first, destination first.

 [31/36] from: agem:crosswinds at: 13-Sep-2000 17:01


I agree. note ya-skip: func[n blk /r1 1 /r2] [...] ya-skip/r1/r2 a + b + c blk lots of stuff for 1 and for 2 where we work on? second: englishs have skip 3 blk . not skip 3 blk there is a real defined end with action at start, destination at end and the rest in the middle. a bit like brackets. where is the end in rebol? and another append append blk 1 2 works append 1 append 2 blk would reverse? Volker [joel--neely--fedex--com] wrote on 13-Sep-2000/7:44:50-5:00

 [32/36] from: jeff:rebol at: 13-Sep-2000 10:03


Howdy Elan:
> Hi Jeff, > why not include an optional key mapping for
<<quoted lines omitted: 4>>
> brackets before they are passed to REBOL for processing and > to the console output.
I think sytem/console/keys is there for this kind of thing, but currently it doesn't appear to me that anything uses it. Aye Jim? -jeff

 [33/36] from: jeff:rebol at: 13-Sep-2000 10:08


> > REBOL doesn't want your fingers to hurt. > > But here I need shift for the semicolon, and "ALT GR" for > the square brakets (on the Amiga it's better, the [] don't > need shift on the keypad). :-( > > Should I buy an US keyboard? :)
Wow-- why do all these international keyboards make everything so inconvenient to type? [Ducks and runs for cover] ;-) [Maybe the send key should be harder to hit on my keyboard (-:] -jeff

 [34/36] from: alex:pini:mclink:it at: 14-Sep-2000 15:34


>- Open Your Mind -<
Quoting from [joel--neely--fedex--com's] message (13-Sep-00 14:44:50). j> 2) I'm well aware that our German friends (for example) a literature j> whose style long, sophisticated utterances with verbs deferred to j> the end includes have. So all of the above conjecturing very j> likely culturally influenced has been. Perhaps those of us whose j> native language American or British is a tendency toward attention j> deficit disorder have. You're beginning to sound like a green Jedi master. :-) Alessandro Pini ([alex--pini--mclink--it]) You must unlearn what you have learned. (Yoda)

 [35/36] from: robert:muench:robertmuench at: 27-Sep-2000 19:39


> -----Original Message----- > From: [jeff--rebol--net] [mailto:[jeff--rebol--net]]
<<quoted lines omitted: 6>>
> so they'd better be conveniently located and easy to hit. > REBOL doesn't want your fingers to hurt.
Hi, I know I'm late on this (still 1215 unread Rebol postings to screen ;-)) but Carl, you should have had a look on a none US keyboard. To get the [] on a German keyboard you have to use AltGr for this!! But for {} it's the same... Robert M. Muench (because people might no longer remember me on this list ;-))

 [36/36] from: petr:krenzelok:trz:cz at: 27-Sep-2000 19:55


----- Original Message ----- From: <[robert--muench--robertmuench--de]> To: <[list--rebol--com]> Sent: Wednesday, September 27, 2000 7:39 PM Subject: [REBOL] Rebol Tech, please answer. Two questions. Re:(6)
> > -----Original Message----- > > From: [jeff--rebol--net] [mailto:[jeff--rebol--net]]
<<quoted lines omitted: 8>>
> > REBOL doesn't want your fingers to hurt. > Hi, I know I'm late on this (still 1215 unread Rebol postings to screen
;-))
> but Carl, you should have had a look on a none US keyboard. To get the []
on
> a German keyboard you have to use AltGr for this!! But for {} it's the > same... Robert M. Muench (because people might no longer remember me on
this
> list ;-))
hey Robert, where have you been all the time? -pekr-

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