----> &null 2 === +2 ----> 2 3 === *"abc" ----> 3 'abc' === ('abc' ++ '') ----> 'abc' 'a' ----> 'a' 'ab' ----> 'ab' '\xb9' ----> '\xb9' '\xb8\xb4' ----> '\xb4\xb8' '\^d' ----> '\x04' '\^a\^d' ----> '\x01\x04' "a" ----> "a" "ab" ----> "ab" "\xb9" ----> "\xb9" "\xb8\xb4" ----> "\xb8\xb4" "\^d" ----> "\x04" "\^a\^d" ----> "\x01\x04" *'a' ----> 1 *'ab' ----> 2 *'\xb9' ----> 1 *'\xb8\xb4' ----> 2 *'\^d' ----> 1 *'\^a\^d' ----> 2 *"a" ----> 1 *"ab" ----> 2 *"\xb9" ----> 1 *"\xb8\xb4" ----> 2 *"\^d" ----> 1 "*\^a\^d" ----> "*\x01\x04" 1 3 5 7 9 every write("..."(1,10,2)) ----> none function write every write("image"(write)) ----> none "[:]"("abcdef",3,5) ----> "cd" "[]"(&lcase,3) ----> "c" image(proc("^",1)) ----> "function ^" image(proc("^",2)) ----> "function ^" proc("+",2)(3,4) ----> 7 proc(proc)("write") ----> function write proc("+") ----> function + ?10 ----> 3 ?10 ----> 5 ?10 ----> 4 ?20 ----> 11 ?[1,2,3,4] ----> 2 ?[1,2,3,4] ----> 2 x := array(1,2,3,4,5,6,7) ----> record array_1(7) ?x ----> 1 ?x ----> 6 ?x ----> 1 ?x ----> 6 ?x ----> 1 ?x ----> 3 ?x ----> 4 ?x ----> 5 6 8 8 3 9 4 4 9 9 1 every 1 to 10 do write(?10) ----> none 8 4 7 5 9 10 4 5 6 7 every 1 to 10 do write(?[1,2,3,4,5,6,7,8,9,10]) ----> none a f c c a f d d f b every 1 to 10 do write(?"abcdef") ----> none x := array(1,2,3,4,5,6,7) ----> record array_2(7) 3 6 7 7 4 6 4 1 6 6 every 1 to 10 do write(?x) ----> none (1,2,3,4,5) ----> 5 1 2 3 4 5 every write((1 to 5)(1,2,3,4,5)) ----> none 0(1,2) ----> none 1(1) ----> 1 2(1) ----> none (-1)(1,2,3) ----> 3 3(1,2,3,&fail) ----> none a a b b c c a a b b c c a a b b c c a a b b c c a a b b c c every write(2(1 to 5,!"abc",1 to 2)) ----> none x := 1 ----> 1 y := 2 ----> 2 (x := y) & &fail ----> none a b c d e f every write(!"abcdef") ----> none 1 2 3 4 5 every write(![1,2,3,4,5]) ----> none 1 2 3 4 5 every write(!![1,2,3,4,5]) ----> none 1 a b 1 2 3 3 4 every write(!![1,"ab",[1,2,3],34]) ----> none 1 a b 1 2 3 3 4 every write(!([1,"ab",[1,2,3],34][1 to 4])) ----> none x := array(1,2,3,4,5) ----> record array_3(7) 1 2 3 4 5 every write(!x) ----> none x := 1 ----> 1 y := 2 ----> 2 x <-> y ----> 2 y <-> x ----> 2 (x <-> y) & &fail ----> none x ----> 1 y ----> 2 *"" ----> 0 *'' ----> 0 *[] ----> 0 *table() ----> 0 *30 ----> 2 !"abc" ----> "a" ![1,2,3] ----> 1 !&lcase ----> "a" !30 ----> "3" !table() ----> none ?"abc" ----> "c" ?&lcase ----> "f" ?[1,2,3] ----> 2 ?table() ----> none ?30 ----> 27 .x ----> &null ."abc" ----> "abc" .[] ----> list_22(0) .main ----> procedure main /main ----> none /"abc" ----> none /&null ----> &null /[] ----> none /&lcase ----> none \main ----> procedure main \"abc" ----> "abc" \x ----> none \[] ----> list_24(0) \&null ----> none 1 | 2 | 3 ----> 1 |(1 to 10) ----> 1 ||(1 to 10) ----> 1 |||(1 to 10) ----> 1 ||||(1 to 10) ----> 1 |||||(1 to 10) ----> 1 |||||||(1 to 10) ----> 1 2 \ 2 ----> 2 while 1 do break ----> &null while 1 do break "hello" ----> "hello" while break ----> &null case 1 of {2:3; "1":4; 1: 4 to 10; default: "whoa"} ----> 4 not 1 ----> none not \&null ----> &null repeat break ----> &null until 1 do 2 ----> none if 1 then 2 else 3 ----> 2 1 2 3 4 5 6 7 8 9 10 every write(if 1 then 1 to 10 else 5) ----> none 10 9 8 7 6 5 4 3 2 1 every write(if 1 = 0 then 1 to 10 else 10 to 1 by -1) ----> none if 1 then 2 ----> 2 if 1 = 0 then 2 ----> none x := 1 ----> 1 y := 2 ----> 2 z := 3 ----> 3 x :=: y ----> 2 y :=: x ----> &null x ----> &null y ----> &null z ----> &null x :=: y :=: z ----> &null x ----> &null y ----> &null z ----> &null x := 1 ----> 1 y := 2 ----> 2 z := 3 ----> 3 x <-> y ----> &null y <-> x ----> &null x ----> &null y ----> &null z ----> &null x <-> y :=: z ----> &null x ----> &null y ----> &null z ----> &null 1 & 2 & 3 & 4 ----> 4 (1 & 2 & 3 & x) := 3 ----> 3 x ----> &null x := 1 ----> 1 y := 2 ----> 2 (x <- y) & &fail ----> none x ----> 1 y ----> 2