From d1c12218229989dc9a6e15b0190ae0ca05ecb20f Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Fri, 2 Jan 2015 18:13:04 -0800 Subject: 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. --- channel.mu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'channel.mu') 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 -- cgit 1.4.1-2-gfad0