diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-01-02 18:13:04 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-01-02 18:20:18 -0800 |
commit | d1c12218229989dc9a6e15b0190ae0ca05ecb20f (patch) | |
tree | 639797bac7cd33b315d599edb696309483ee25e0 /channel.mu | |
parent | d99607231dd767df599478bb0bbc68d0a3483d1a (diff) | |
download | mu-d1c12218229989dc9a6e15b0190ae0ca05ecb20f.tar.gz |
497 - strengthen the concept of 'space'
'default-scope' is now 'default-space' 'closure-generator' is now 'next-space-generator' The connection to high-level syntax for closures is now tenuous, so we'll call the 'outer scope' the 'next space'. So, let's try to create a few sentences with all these related ideas: Names map to addresses offset from a default-space when it's provided. Spaces can be strung together. The zeroth variable points to the next space, the one that is accessed when a variable has /space:1. To map a name to an address in the next space, you need to know what function generated that space. A corollary is that the space passed in to a function should always be generated by a single function. Spaces can be used to construct lexical scopes and objects.
Diffstat (limited to 'channel.mu')
-rw-r--r-- | channel.mu | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/channel.mu b/channel.mu index cb1721af..854ab858 100644 --- a/channel.mu +++ b/channel.mu @@ -1,6 +1,6 @@ (function producer [ ; produce numbers 1 to 5 on a channel - (default-scope:scope-address <- new scope:literal 30:literal) + (default-space:space-address <- new space:literal 30:literal) (chan:channel-address <- next-input) ; n = 0 (n:integer <- copy 0:literal) @@ -24,7 +24,7 @@ (function consumer [ ; consume and print integers from a channel - (default-scope:scope-address <- new scope:literal 30:literal) + (default-space:space-address <- new space:literal 30:literal) (chan:channel-address <- next-input) { begin ; read a tagged value from the channel |