Namespaces: (work in progress)

Namespaces are where Glee keeps track of symbolic names and the data objects they reference.

Commentary Code Result
Commentary #ns => @;"abc"=>str;10=>num;
'<1>-----------' $; [] %** $;
<1>-----------
NS[R1C2:K]
Assoc[R2C1:P]:str:String[3]
Assoc[R2C1:P]:num:Num[1]
Commentary #ns => @; 101=>i; #ns =>n;
111=>[.i]n;'abc'=>[.j]n;
'xyz' 222 =>[.str .num]n;
'<1>-----------' $; [] %** $;
'<2>-----------' $; n[] %** $;
<1>-----------
NS[I347R1C2:K]
Assoc[I177R2C1:P]: i:Num[1]
Assoc[I199R2C1:P]: n:NS[4]
<2>-----------
NS[I381R1C4:K]
Assoc[I236R2C1:P]: i:Num[1]
Assoc[I273R2C1:P]: j:String[3]
Assoc[I322R2C1:P]: str:String[3]
Assoc[I323R2C1:P]: num:Num[1]
Commentary #ns => @;#ns =>n;10=>[.j]n;
'<1>-----------' $; [] %** $;
'<2>-----------' $; n[] %** $;
'<3>-----------' $; n %** $;
'<4>-----------' $; [.n] %** $;
'<5>-----------' $; n[.j] %** $;
'<6>-----------' $; n[.j]< %** $;
'<7>-----------' $; n[.j]< < %** $;
<1>-----------
NS[I510R1C1:K]
Assoc[I449R2C1:P]: n:NS[1]
<2>-----------
NS[I544R1C1:K]
Assoc[I486R2C1:P]: j:Num[1]
<3>-----------
NS[S431R4C1:K]
Assoc[I486R1C1:P]: j:Num[1]
<4>-----------
NS[I589R1C1:K]
Assoc[I590R1C1:P]: n:NS[1]
<5>-----------
NS[I625R1C1:K]
Assoc[I626R1C1:P]: j:Num[1]
<6>-----------
Seq[I666R1C1T:K]:
[1]Num[S453R2C1:I]10
<7>-----------
Num[S453R2C1:I]10
Commentary #ns => @;#ns @ =>rn; 10 =>rn.j;
'<1>-----------' $; @ =>rl %** $;
'<2>-----------' $; rl %** $;
'<3>-----------' $; rl.rn %** $;
'<4>-----------' $; @.rn %** $;
'<5>-----------' $; rn.j %** $;
'<6>-----------' $; rl.rn.j %** $;
<1>-----------
NS[I798R1C2:K]
Assoc[I747R2C1:P]:rn@[NS]:NS[1]
Assoc[I794R2C1:P]:rl@[NS]:NS[2]
<2>-----------
NS[I826R1C2:K]
Assoc[I747R2C1:P]:rn@[NS]:NS[1]
Assoc[I794R2C1:P]:rl@[NS]:NS[2]
<3>-----------
NS[I855R1C1:K]
Assoc[I764R2C1:P]:j:Num[1]
<4>-----------
NS[I884R1C1:K]
Assoc[I764R2C1:P]:j:Num[1]
<5>-----------
Num[I913R1C1:I]10
<6>-----------
Num[I941R1C1:I]10
Commentary #ns => @; 10=>i;'str'=>s;i s => q;
'<1>---------' $; [] $;
'<2>---------' $; []~'s' $;
'<3>---------' $; [] $;
'<4>---------' $; []~'s' =>[]$;
'<5>---------' $; @ ~.i=> @ ^@$;
'<6>---------' $; @ ~.q=> @ ^@$;
<1>---------
NS:i s q
<2>---------
NS:i q
<3>---------
NS:i s q
<4>---------
NS:i q
<5>---------
NS:q
<6>---------
NS:
Commentary #ns => @;'aa'=> a;@ =>rl;
('<1>: ') $; rl ^@ $;
('<2>: ')' '(rl.a ) $;
('<3>: ') $;
'bb'=>['b']; 'cc'=>rl.c; [] $;
('<4>: ') $; rl ^@ $;
('<5>: ')' '(a ) $;
('<6>: ')' '(rl.a ) $;
('<7>: ')' '(b ) $;
('<8>: ')' '(rl.b ) $;
('<9>: ')' '(c ) $;
('<10>: ')' '(rl.c ) $;
<1>:
NS:a rl@[NS]
<2>: aa
<3>:
NS:a rl@[NS] b c
<4>:
NS:a rl@[NS] b c
<5>: aa
<6>: aa
<7>: bb
<8>: bb
<9>: cc
<10>: cc
Commentary #ns => @;#ns =>a;#ns =>b;
b=>[.nsa]a; a=>[.nsb]b;
('<1>: ')' ' ( a[] ) $;
('<2>: ')' ' ( b[] ) $;
('<3>: ')' ' ( a[.nsb]< ) $;
'<4>: ' $ ; a:size $;
<1>: nsb:NS[1]
<2>: nsa:NS[1]
<3>: nsa:NS[1]
<4>: a.size
       ^Value error
Recursion Error:
Commentary #ns => @; 10=>p.q.n;'abc'=>p.q.s;
'<1>--------' $ ; @ ^@ %** $;
'<2>--------' $ ; p %** $;
'<3>--------' $ ; p.q %** $;
'<4>--------' $ ; p.q.n %** $;
'<5>--------' $ ; p.q.s %** $;
<1>--------
NS[I640R1C1:K]
Assoc[I604R2C1:P]:p:CV[1]
<2>--------
CV[I682R1C1:K]
Assoc[I595R2C1:P]:q:CV[2]
<3>--------
CV[I715R1C2:K]
Assoc[I597R2C1:P]:n:Num[1]
Assoc[I625R2C1:P]:s:String[3]
<4>--------
Num[I747R1C1:I]10
<5>--------
String[S608R3C3:C]abc
Commentary #ns => @;10=>i;'abc'=>s;
('<1>: ')' '( [.i.s] ) $;
('<2>: ')' '
  ( [.i.s][.ii.ss]@ =>arg ^@ ) $;
('<3>: ')' '( arg.ii ) $;
('<4>: ')' '( arg.ss ) $;
20 => arg.ii ;
('<5>: ')' '( arg.ii ) $;
('<6>: ')' '( i ) $;
<1>: i:Num[1]s:String[3]
<2>: ii:Num[1]ss:String[3]
<3>: 10
<4>: abc
<5>: 20
<6>: 10
Commentary #ns => @;10=>i;'abc'=>s;
'<1>-------' $ ; [.i.s] %** $;
'<2>-------' $ ;
(i@) (s) [.ii.ss]@ =>arg %** $;
'<3>-------' $ ; arg.ii %** $;
'<4>-------' $ ; arg.ss %** $;
'<5>-------' $ ;
20=>arg.ii;$V arg.ii $ $v;
'<6>-------' $ ; arg.ii ^@ %**$;
'<7>-------' $ ; i %** $;
<1>-------
NS[R1C2:K]
Assoc[R1C1:P]:i:Num[1]
Assoc[R1C1:P]:s:String[3]
<2>-------
NS[R1C2:K]
Assoc[R2C1:P]:ii@i:Num[1]
Assoc[R2C1:P]:ss:String[3]
<3>-------
Num[R1C1:I]10
<4>-------
String[R5C3:C]abc
<5>-------
Ref[R4C1:P]i@:Num[R1C1:I]20
<6>-------
Num[R1C1:I]20
<7>-------
Num[R1C1:I]20
Commentary #ns => @;
'<1>-------' $ ; 1..5[.i]=>ns %** $;
'<2>-------' $ ; ns@.i %** $;
'<3>-------' $ ;
1..5[.i.j]=>ns; ns@.i %** $;
'<4>-------' $ ; ns@.j %** $;
'<5>-------' $ ; 1 2[.i.j.k]< %** $;
'<6>-------' $ ;
'a'1 2 3[.i.j.k]< %** $;
'<7>-------' $; 1'a'[.i.j.k]< %** $;
'<8>-------' $; 'a'2[.i.j.k]< %** $;
<1>-------
NS[R2C1:K]
Assoc[R1C1:P]:i:Num[5]
<2>-------
Num[R1C5:I]1 2 3 4 5
<3>-------
Num[R1C1:I]1
<4>-------
Num[R1C1:I]2
<5>-------
Seq[R1C3:K]
[1]Num[R1C1:I]1
[2]Num[R1C1:I]2
[3]Num[R1C1:I]0
<6>-------
Seq[R1C3:K]
[1]String[R2C1:C]a
[2]Num[R2C1:I]1
[3]Num[R2C1:I]2
<7>-------
Seq[R1C3:K]
[1]Num[R2C1:I]1
[2]String[R2C1:C]a
[3]Nil[R1C1:*]
<8>-------
Seq[R1C3:K]
[1]String[R2C1:C]a
[2]Num[R2C1:I]2
[3]Nil[R1C1:*]
Commentary #ns => @;10=>i;20=>j;30=>k;
'<1>-------'$; [] $;
'<2>-------'$; @ ~(.i.k) $;
'<3>-------'$; [] $;
'<4>-------'$; @ ~(.i.k)=> @ ^@$;
'<5>-------'$; [] $;
<1>-------
NS:i j k
<2>-------
NS:j
<3>-------
NS:i j k
<4>-------
NS:j
<5>-------
NS:j