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 /chessboard.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 'chessboard.mu')
-rw-r--r-- | chessboard.mu | 8 |
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) ]) |