about summary refs log tree commit diff stats
path: root/chessboard.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-01-02 18:13:04 -0800
committerKartik K. Agaram <vc@akkartik.com>2015-01-02 18:20:18 -0800
commitd1c12218229989dc9a6e15b0190ae0ca05ecb20f (patch)
tree639797bac7cd33b315d599edb696309483ee25e0 /chessboard.mu
parentd99607231dd767df599478bb0bbc68d0a3483d1a (diff)
downloadmu-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 'chessboard.mu')
-rw-r--r--chessboard.mu8
1 files changed, 4 insertions, 4 deletions
diff --git a/chessboard.mu b/chessboard.mu
index 71e3da92..e9fbd101 100644
--- a/chessboard.mu
+++ b/chessboard.mu
@@ -8,7 +8,7 @@
 (address board-address (board))
 
 (function read-board [
-  (default-scope:scope-address <- new scope:literal 30:literal)
+  (default-space:space-address <- new space:literal 30:literal)
   (initial-position:list-address <- init-list R:literal P:literal _:literal _:literal _:literal _:literal p:literal r:literal
                                               N:literal P:literal _:literal _:literal _:literal _:literal p:literal n:literal
                                               B:literal P:literal _:literal _:literal _:literal _:literal p:literal b:literal
@@ -39,7 +39,7 @@
 ])
 
 (function read-file [
-  (default-scope:scope-address <- new scope:literal 30:literal)
+  (default-space:space-address <- new space:literal 30:literal)
   (cursor:list-address <- next-input)
   (result:file-address <- new file:literal 8:literal)
   (row:integer <- copy 0:literal)
@@ -60,7 +60,7 @@
 ])
 
 (function print-board [
-  (default-scope:scope-address <- new scope:literal 30:literal)
+  (default-space:space-address <- new space:literal 30:literal)
   (b:board-address <- next-input)
   (row:integer <- copy 7:literal)
   ; print each row
@@ -87,7 +87,7 @@
 
 (function main [
 ;?   (print-primitive (("\u2654 \u265a" literal)))
-  (default-scope:scope-address <- new scope:literal 30:literal)
+  (default-space:space-address <- new space:literal 30:literal)
   (b:board-address <- read-board)
   (print-board b:board-address)
 ])