about summary refs log tree commit diff stats
path: root/chessboard.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2014-12-30 22:36:36 -0800
committerKartik K. Agaram <vc@akkartik.com>2014-12-30 23:15:37 -0800
commit3af0919dc6af96454bbab5b2f070fe33e57bc9a8 (patch)
treeedf0bbe65ab2fd2c920b745ec1961f643e7baa05 /chessboard.mu
parentddc3dd1408945ba658e7ce1fc7c7f8a8963a416c (diff)
downloadmu-3af0919dc6af96454bbab5b2f070fe33e57bc9a8.tar.gz
471 - experiment: chessboard app
No tests. Let's have some fun.
As a first step, a 'list-length' function. Iterative version is 25% faster
than recursive (60 vs 45 seconds).
Diffstat (limited to 'chessboard.mu')
-rw-r--r--chessboard.mu25
1 files changed, 25 insertions, 0 deletions
diff --git a/chessboard.mu b/chessboard.mu
new file mode 100644
index 00000000..bba3a3ad
--- /dev/null
+++ b/chessboard.mu
@@ -0,0 +1,25 @@
+(function read-board [
+  (default-scope:scope-address <- new scope:literal 30:literal)
+  (initial-position:list-address <- init-list R:literal N:literal B:literal Q:literal K:literal B:literal N:literal R:literal
+                                              P:literal P:literal P:literal P:literal P:literal P:literal P:literal P:literal
+                                              _:literal _:literal _:literal _:literal _:literal _:literal _:literal _:literal
+                                              _:literal _:literal _:literal _:literal _:literal _:literal _:literal _:literal
+                                              _:literal _:literal _:literal _:literal _:literal _:literal _:literal _:literal
+                                              _:literal _:literal _:literal _:literal _:literal _:literal _:literal _:literal
+                                              p:literal p:literal p:literal p:literal p:literal p:literal p:literal p:literal
+                                              r:literal n:literal b:literal q:literal k:literal b:literal n:literal r:literal)
+  ; assert(length(initial-position) == 64)
+  (len:integer <- list-length initial-position:list-address)
+  (print-primitive len:integer)
+  (reply)
+;?   (b:board <- read-board initial-position:list)
+;?   (print-board b:board)
+])
+
+(function print-board [
+
+])
+
+(function main [
+  (read-board)
+])