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

[REBOL] Re: Commercial-quality REBOL programmers needed

From: joel:neely:fedex at: 17-Aug-2002 8:25

Hi, Dick, One other thought on this... [reffy--ulrich--net] wrote:
> Hi List, > > I am bored ... > > Does the evaluation of the expression: a + b > > Happen synchronously, or asynchronously > > Are the values of 'a' and 'b' currently exclusive to the process > that can perform the '+' operation or are they in 'shared' mode ? >
As pointed out previously, REBOL is single-threaded. However (as usual with REBOL), there's more to the story. The values/behaviors of the words A and B above may be "entangled" in other ways that we can't observe just from that fragment of code. For example: hidden_counter_1: hidden_counter_2: 0 a: func [] [ hidden_counter_1: hidden_counter_1 + hidden_counter_2: hidden_counter_2 + 1 ] b: func [] [ hidden_counter_1: hidden_counter_1 + hidden_counter_2 hidden_counter_2: hidden_counter_2 + 1 hidden_counter_1 ] In this case, the value of A + B would differ from the value of B + A due to their mutual involvement with hidden state. I realize that this isn't specifically about traditional concurrency, but long ago I stopped interpreting "concurrent" as "happening at the same time" and began interpreting it as "may happen (or be interleaved) in an arbitrary order" which makes it a much more interesting concept IMHO. -jn- -- ; Joel Neely joeldotneelyatfedexdotcom REBOL [] do [ do func [s] [ foreach [a b] s [prin b] ] sort/skip do function [s] [t] [ t: "" foreach [a b] s [repend t [b a]] t ] { | e s m!zauafBpcvekexEohthjJakwLrngohOqrlryRnsctdtiub} 2 ]