[REBOL] Rolling your own ideal looper: does Repeat still have a bug? Re:(2)

2000-08-27 Thread lmecir

Hi,

just a small change:

ideal-looper: func [
[throw]
'element [word!]
'index [word!]  
series [series!]
code [block!]   
/local f i
] [
f: func reduce [element [any-type!] index] code
i: 1
while [i = length? series] [f series/:i i i: i + 1]
]

Regards
Ladislav




[REBOL] Rebol/Command Doc Re:

2000-08-27 Thread c . brizell


Does anyone know where i can get Any REBOL/Command 
Documentation?

Try looking here:-
http://www.janita.com.au/rebolforces/docs/users.html

HTH
colinb
Colin Brizell
IT System Development Officer
University College Worcester
Tel: 01905 855389
Fax: 01905 855330
http://www.worc.ac.uk




[REBOL] context of a function Re:(11)

2000-08-27 Thread lmecir

Hi,

Galt:
  I generally find that most of my knowledge of other computer
systems to
 gain insight into rebol is quite helpful and revealing.  Even
having the
 context to say, this is like scheme or logo in rebol, but that
is like some
 other language, etc. is all helpful.

  So, yes, it is true that rebol is different in important ways
from other
 languages and therefore you will have to gain a new
understanding. But this
 notion that you would be better off starting from a point of
total ignorance
 and then everything would be easy is patently absurd.

  When I have trouble with Rebol, if I was a less knowledgeable
user I would
 probably just give up. Being able to make some guesses about
possible causes
 or solutions is much better.
  So, the best way really, is for Rebol to tell us how it works
inside.
 When you know how rebol lists really work, and string literals
and contexts
 and words, then you understand rebol.  Ignorance or innocence
isn't much
 help.

  Obviously, one should try never to allow preconceptions and
prejudice to
 inhibit understanding, and that is true of everything, not just
Rebol.
  I am not a stupid person, even if I am not a genius. I only
got this far
 with Rebol because I am doggedly persistent, not because I have
the
 pleasantly uncluttered mind of an infant.
  I really like and respect you Andrew, and I appreciate all the
work you
 have done for Rebol and the members of the list. I just didn't
want to let
 this go by yet again...

  Now, this doesn't mean that I am anti-Rebol or want to be
critical or
 whatever.  We all love Rebol and want to use it as much as
possible!  I
 still don't know how forgetting everything I know is going to
help me figure
 out just what the heck read-io really does and why timeouts
don't seem to
 work as advertised for downloading big files...


Andrew:
 I was hindered by my knowledge of other languages. Coming from a
point of
 view of innocence, knowing only human languages, is better I
feel.

 I disagree. The model that Rebol is based on is close to natural
human
 language. Knowing that and knowing nothing of computer languages
is the best
 way to learn Rebol. Rebol works literally as it is. Discussing
in depth,
 contexts and how they work are almost meaningless, particularly
when some
 parts of Rebol are still buggy and need to fixed. I thinking of
the GC bug,
 hopefully that's fixed in the experimental builds.

 Change can be hard, but after the change, you wonder, what was
the trouble?

 You're basically trying hard to learn the detail, without
knowing rebol.


Ladislav:
Rebol differs from human languages in some respects. One of them
can be found comparing Rebol Values vs. Human Values (see
http://www.geocities.com/lmecir.geo/evaluation.txt). This may be a
surprise for both  experienced and inexperienced programmer,
because that fact is hidden in other programming languages to some
extent. Another difference can be found comparing the behaviour of
Rebol (CQSB/DRP) functions with the behaviour of their Pure CQSB
counterparts (see
http://www.geocities.com/lmecir.geo/contexts.txt). A set of the
differences can be found studying the behaviour of code -
modifying functions like Repeat, Make Object!, Use, Foreach, ...
The latter difference can be considered a bug, of course, but it
is present in Rebol nowadays.

My personal point of view is, that my previous experience with
other programming languages helped me to understand Rebol and
appreciate its advantages.




[REBOL] Meaning, Value, Binding and Context

2000-08-27 Thread Al . Bri

Ladislav:
 Rebol differs from human languages in some respects. One of them can be
found comparing Rebol Values vs. Human Values (see
http://www.geocities.com/lmecir.geo/evaluation.txt). This may be a surprise
for both  experienced and inexperienced programmer, because that fact is
hidden in other programming languages to some extent. Another difference can
be found comparing the behaviour of Rebol (CQSB/DRP) functions with the
behaviour of their Pure CQSB counterparts (see
http://www.geocities.com/lmecir.geo/contexts.txt). A set of the differences
can be found studying the behaviour of code - modifying functions like
Repeat, Make Object!, Use, Foreach, ... The latter difference can be
considered a bug, of course, but it is present in Rebol nowadays.

This is quoted from Ladislav's web page:
Quote
; create a block Blk containing a word 'a
blk: copy [a]
a: 12
; now append another word to Blk
b: make object! [append blk 'a a: 13]
probe blk
; test if blk contains equal words
equal? first blk second blk
equal? get first blk get second blk

What is the reason behind such a "mystery"? The answer is simple:

*Words have Bindings*

and the first Word in Blk has a different Binding, than the second.
/Quote

I differ slightly in my interpretation.

 ; create a block Blk containing a word 'a
 blk: copy [a]
== [a]
 a: 12
== 12
 ; now append another word to Blk
 b: make object! [append blk 'a a: 13]
 probe blk
[a a]
== [a a]
 ; test if blk contains equal words
 equal? first blk second blk
== true
 equal? get first blk get second blk
== false
 first blk
== a
 second blk
== a
 get first blk
== 12
 get second blk
== 13
 a
== 12
 b/a
== 13
 probe a
12
== 12
 probe b

make object! [
a: 13
]


Words have meanings (or values). The meaning of a word depends on it's
context. Two words may look the same, but can have different meanings,
because of their different contexts. 'b is an object with a different
context to the surrounding context. The word 'a inside 'b has a different
meaning from the 'a defined inside the global context. While the two words:
first blk
and:
second blk
look the same, they both result in 'a, they have different meanings. The
first means:
12
and the second means:
13

That's all there is to it. It's very like human language. For example,
"bear". There's a bear in the woods. That's all it can bear. Two words
exactly the same like [a a], but with different meanings. Here the
surrounding words supply the context, enabling the reader to know that the
first "bear" (a) means a four legged mammal (12), while the second "bear"
(a) means an amount of weight (13).

One can change the meaning of the word by binding it into a different
context. Here I bind the block into the global context:

 bind blk 'a
== [a a]
 get first blk
== 12
 get second blk
== 12

and so make both words in the block mean the same. I can reassign the
meaning of the words in the block by 'bind-ing the block's words into the
context of the object 'blk, like this:

 bind blk in b second first b
== [a a]
 get first blk
== 13
 get second blk
== 13

And I really like the simplicity of the line:
bind blk in b
which really means what it says. The only confusing thing is:
second first b

 first b
== [self a]

'first on a object gets you a list of words in the object. While 'second
simply gets the first word after 'self:

 second first b
== a

so allowing the 'bind to work.

 help in
USAGE:
IN object word

DESCRIPTION:
 Returns the word in the object's context.
 IN is a native value.

ARGUMENTS:
 object -- (Type: object)
 word -- (Type: word)

Ladislav:
 My personal point of view is, that my previous experience with other
programming languages helped me to understand Rebol and appreciate its
advantages.

There's two succesful approaches to understanding Rebol. Have little
understanding of conventional computer languages - the innocent approach.
Have lots of understanding of conventional languages as Carl Sassenrath has
done and as most likely, Ladislav has. If you know one or a few conventional
third generation languages, then you're behind on the learning Rebol curve,
until you unlearn these languages.

Andrew Martin
See Rebol, Do Rebol, Know Rebol...
ICQ: 26227169
http://members.xoom.com/AndrewMartin/
--




[REBOL] make list 0 versus make list []

2000-08-27 Thread princepawn

I read something in the REBOL McGraw-Hill book, but would like to verify it.

Is there a difference on subsequent invocations of a function if I bind a (local?) 
value using make list! 0 versus make list! []

So, now I have created 4 cases:


make list!.0  or []
the word being defined./local to function or global to rebol

If I could get an answer to all four of these cases, I would be a much clearer on 
state retention between function invocations.

Thanks.

Terrence "Perl Refugee" Brannon



Get your FREE Email and Voicemail at Lycos Communications at
http://comm.lycos.com




[REBOL] who invented rebol?

2000-08-27 Thread rishi

Hi. I'm curious who created Rebol. The rebol website claims Carl Sassenrath.
But I've also read that Joe Marschall was the creator of Rebol (at least 1.x
versions).

Rishi




[REBOL] who invented rebol? Re:

2000-08-27 Thread jimg

The original and subsequent language design have all been done by Carl himself.

Carl also programmed the original Alpha implementation. The 1.X 
implementation was primarily programmed by Joe Marshall with some last 
minute help from me and Sterling. The 2.0 implementation was completely 
rewritten from scratch primarily by Carl and myself with help from Sterling 
and Jeff on the REBOL scripted protocols.

  - jim

At 12:59 PM 8/27/2000 -0700, you wrote:
Hi. I'm curious who created Rebol. The rebol website claims Carl Sassenrath.
But I've also read that Joe Marschall was the creator of Rebol (at least 1.x
versions).

Rishi




[REBOL] Smooth scrolling. What's requiered? Jim? (was) Multimedia quality (was) One disk OS + REBOL Re:(13)

2000-08-27 Thread agem



Which means it works similar to turning the monitor buttons instead of
moving bytes :)


--- [EMAIL PROTECTED] wrote on 27-Aug-2000/1:50:58+3:00
 Quoting [EMAIL PROTECTED] ([EMAIL PROTECTED]):
 
  I am an amigan and so I came to PC area from the world of very
  smooth scrolling.  Every PC man should go and look at original
  screen dragging on Amiga. Smooth even on 14Mhz Amiga 500 (or was it
  even 7 Mhz? :-) IIRC it was hardware supported feature, but not
  sure.
 
 A500 was using 68000 running at 7MHz. Screendragging was done on
 hardware using copper to change som gfx-registers on the fly. Holger
 sure can explain better :)
 
 
 -- 
 Jussi HagmanCS in Åbo Akademi University
 Studentbyn 4 D 33   [EMAIL PROTECTED]
 20540 Åbo   [EMAIL PROTECTED]
 Finland
 

 
Volker




[REBOL] Index? Re:(3)

2000-08-27 Thread agem



--- [EMAIL PROTECTED] wrote on 26-Aug-2000/15:15:31-7:00

 Hi Volker
 This may be a partial dupe of one I sent earlier.
 
 Why do you insert the "item: first a", but then not use it?
 

Paul needed the index and the item without all that 'first everytime.
this is a big bit ugly, but gives you both values:
  a: "101"
  forall a [item: first a
  print index? a]

its a sample, so i found no use for the 'item..
not as elegant as Gabrieles solution :)

 Here's a console session that prints index and item:
 
  a: "101"
 == "101"
  forall a [prin index? a print [" " first a]] a: head a ; This final
 statement is needed only if the forall is rerun later.
 1  1
 2  0
 3  1
 == "101" ; This results from the "final statement" in the console line
 above.
 
 - Original Message -
 From: [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Sent: Saturday, August 26, 2000 2:10 PM
 Subject: [REBOL] Index? Re:
 
 
 
 
  a: "101"
  forall a [item: first a
  print index? a]
 
  
   Is there an alternative for:
  
   a: "101"
   foreach item a [print index? item]
   1
   2
   3
  
   Obvious to you REBOL gurus this generates an error.  But it illustrates
   clearly what I want to do.  Damn, index? is native!  :)   Anyone have
 some
   helpful alternatives.
  
  
   Paul Tretter
  
  
  Volker
 
 
 
 
-- Volker 




[REBOL] Amiga Smooth scrolling. (was) What's requiered? Jim? (was) Multimedia quality (was) One disk OS + REBOL Re:(14)

2000-08-27 Thread mailinglists

Sorry to drag this on, but this thread brought back some memories!

 Which means it works similar to turning the monitor buttons instead of
 moving bytes :)

Pulling down a screen on the Amiga to reveal another one behind it (like
DPaint or something) was one of the most intuitive things I ever did on
a computer, and the smoothness of scrolling is a lie, there was no
scrolling at all! It was all real! If I didn't know any better, it just
felt like I was really pulling that screen down with my hands...
Unbelievable. It took me years to get "comfortable" with Windows'
window-style.

Two things I really missed from day one on Windows: (1) seperate screens
for programs, and (2) menu at the top of the screen always!

Damn, it's the niceties like that, that I miss... ;o)

Regards,
Rachid

PS. Come to think of it, another thing I missed: inserting a floppy and
having an icon appear for it on the desktop... Ah well...

 --- [EMAIL PROTECTED] wrote on 27-Aug-2000/1:50:58+3:00
  Quoting [EMAIL PROTECTED] ([EMAIL PROTECTED]):
 
   I am an amigan and so I came to PC area from the world of very
   smooth scrolling.  Every PC man should go and look at original
   screen dragging on Amiga. Smooth even on 14Mhz Amiga 500 (or was
it
   even 7 Mhz? :-) IIRC it was hardware supported feature, but not
   sure.
 
  A500 was using 68000 running at 7MHz. Screendragging was done on
  hardware using copper to change som gfx-registers on the fly. Holger
  sure can explain better :)
 
 
  --
  Jussi HagmanCS in Åbo Akademi
University
  Studentbyn 4 D 33   [EMAIL PROTECTED]
  20540 Åbo   [EMAIL PROTECTED]
  Finland
 
 

 Volker






[REBOL] Rebol on the Cassiopeia E-115

2000-08-27 Thread mailinglists



Hello,

Anyone tried this one yet? (when's view coming out 
for the PocketPC? ;o)

Regards,
Rachid


[REBOL] sid-server and linux

2000-08-27 Thread webmaster

sid-server or any server for that matter in rebol

what is a good approach to start and stop a server written in rebol on linux

i telnet in and start it up but have to remain connected to make it work
help!

i know it has something to do with shell user and such i think

thanks
Jeff Rubin, CTO  Co-Founder
Audiopia
Shutup and Listen...
http://www.audiopia.com
also check out my personal site Brainbyte!
http://www.brainbyte.com




[REBOL] passing and recognizing cgi variables Re:

2000-08-27 Thread Al . Bri

Jeff Rubin wrote:
 note I tried retrieving the returned variables according to the official
guide:

 user-data-object: make object!  decode-cgi system/options/cgi/query-string

 that did not work

 just returned ?object? when I printed it out  so I changed it to:

Try:
probe user-data-object
to see what's inside the object.

I hope that helps.

Andrew Martin
ICQ: 26227169
http://members.xoom.com/AndrewMartin/
--




[REBOL] Windows Scripting Host Re:

2000-08-27 Thread brian . hawley

Russell [EMAIL PROTECTED] wrote:
Does REBOL/core or REBOL/view us the Windows Scripting Host (a feature of
Win98).  I want to disable it to prevent virus infections.

Unfortunately REBOL doesn't support the ActiveScript interface.
No worries there. Take a look at it though, it's more useful than
you might think. Real scripting support for Windows. You can do
things that even /Command can't do, at least until RT adds ActiveX
client support. Uninstalling WSH won't save you, though...

As for viruses, the best way for you to avoid them is to uninstall
any Outlook or Outlook Express applications that you have on your
system. Most email viruses take advantage of the prevalence of the
Outlook programs and its relative lack of security, even after the
recent patches. Any language or program with ActiveX support can
make Outlook do all sorts of stuff, even if you don't ever use it,
not just VBScripts. The only safe thing to do is uninstall Outlook.

Try Eudora. That program can be locked down tight, and after recent
email scares, they increased the security even more. I know, because
I told their developers where to look for file extensions that are
normally associated with unsafe code.

If they missed any you can blame me, I guess (Please don't) :)

Brian Hawley