comparison code/dotScanner.lm @ 12:1c6d4f2642d0

Fist progress toward a simple recursive dot scanner bot
author William Morgan <billjunk@mrgn.org>
date Fri, 25 Jul 2014 19:19:07 -0700
parents
children 5ded24518dc5 37158acf31e5
comparison
equal deleted inserted replaced
11:2a74559e07f5 12:1c6d4f2642d0
1 #{
2 /*
3 ListGet <- :cell idx {
4 if: idx = 0 {cell value} else: {
5 ListGet: (cell tail) (idx - 1)
6 }
7 }
8 TupGet <- :cell depth size {
9 if: idx = 0 {cell value} else: {
10 if: size = 1 {cell tail} else: { // warning, out-of-bounds idx will return a value!
11 TupGet: (cell tail) (idx - 1) (size - 1)
12 }}
13 }
14
15 // rowmajor lists
16 GridGet <- :x y w h{
17 ListGet
18 ...
19 }
20 */
21 //scanFor <- :target depth visited{
22 //}
23 counterLoad <- 4
24 step <- :myState world {
25 print: (world value)
26 //myPos <-
27 path <- [3 1 3 1] //scanFor: 2 3 [myPos]
28 move <- myState value
29 counter <- (myState tail) - 1
30 if: counter = 0 {
31 move <- move + 1
32 counter <- counterLoad
33 if: move = 4 {
34 move <- 0
35 } else: {}
36 } else: {}
37 #[#[move counter] ((path tail) value)]
38 }
39
40 main <- :initWorld mystery {
41 #[#[0 counterLoad] step]
42 }
43 }
44
45 //does not work:
46 //someListOrTup get: 0
47 //lambdaman program (step function) faulted TagMismatch
48