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

[REBOL] Re: Block Creation Re:

From: brett:codeconscious at: 21-Oct-2000 12:08

Hi Joel, Great approach! Just wanted to give some feedback. Overall yes I think your approach definitely helps to explain the "suprising behaviour of literal blocks" (almost needs an acronym doesn't it? :) ). I liked point 7. () are not something I used much - other than for making code more readable, or using the compose function. But your point, makes me think again. I initially expected something else from point 12. At first I thought "Chain of references" to mean some sort of data structure held together with pointers, when actually it appears you were showing how a series reference can get passed around. Point 13 say "a shared series reference is being modified". Your point is well made, but I would have expected the phrase "the same series is being modified" was more accurate. I want to give my little story of how I reconciled Rebol's behaviour in my mind. When I was trying to get my head around the observed behaviour of Rebol with what I understood to be happening I came up with two ideas that provided a reconciliation. A) Ages ago a had a quick look at a communication theory book. It described symbol, reference and context . Another talked of "sign", "signifier" and signified . I though hmm.... In my mind I saw a strong correlation of these ideas with Rebol's "words" and "values". B) While looking through the code of "probe", "help" and "source" I remembered Carl mentioning that Rebol was its own meta language. Typing source source certainly seems to confirm this. For me A and B considered together gave me the following line of thought. It occurred to me that the words (signifiers) I communicate to Rebol (type at console/ execute script) are interpreted by Rebol into values (signified). These values are in Rebol and I can never actually see them - I had to use words to refer to them. When Rebol communiates with me it uses the same language, that is the same words (signifiers). I then interpret them and understand the values signified that Rebol has communicated to me. So at the console I type a: [] meaning "let a refer to an empty block" Rebol responds with == [] meaning "empty block" Then I type, b: :a what is a?, let b refer to this Rebol follows obviously with == [] empty block So then I type, append b "hi" what is b?, append to this the string 'hi' Rebol, == ["hi"] Block with the string 'hi' And of course I ask, a what is a? Rebol response, == ["hi"] Block with the string 'hi' What was the point of that tedium? the Rebol words "a" and "b" both became signifiers with the same signified (a block). Rebol cannot show this relationship to me visually
>> source a
a: ["hi"]
>> source b
b: ["hi"] But I can ask it if this is the case
>> same? a b
== true So while I realise that this may not be the best description for someone learning the language, I believe this model (signifiers/signified) has value in highlighting "the big picture" when using Rebol. Rebol is a messaging language. A language that does not require you to have to think in "bits", byte boundaries , etc. Brett. ----- Original Message ----- From: "Joel Neely" <[joel--neely--fedex--com]> To: <[rebol-list--rebol--com]> Sent: Friday, October 20, 2000 2:29 AM Subject: [REBOL] Re: Block Creation Re:
> Hello, Carl and list, > > Every time I try to verbalize what happens in cases such as: > > rebol [] > for test1 1 5 1 [ > block1: [] > insert block1 "text1" > ] > > I become very frustrated with myself. I end up with remarks that are > far more complex than my mental concept of what's happening. I take > that to mean that either I can't handle powerful languages (such as > American English or REBOL ;-) very well, OR that I'm going about the > explanation the wrong way.