Record Sets: Fundamentals

Record sets in Glee are like structures and tables in some other languages. See the general commentary Commentaryfor an overview of the concepts.

Commentary Code Result
Commentary #ns => @;
#rs =>rs %** $;
RS[I612R1C1:P]
Fields:[]
Records:{
}
Commentary #ns => @;#rs =>rs;
.f1 .f2 =>[]rs;
rs %** $;
RS[S132R2C1:P]
Fields:[.f1.f2]
Records:{
}
Commentary #ns => @;.f1.f2 #rs =>rs;
rs %** $;
RS[S0R2C1:P]
Fields:[.f1.f2]
Records:{}
Commentary #ns => @;#rs =>rs;
.f1 .f2 .f3=>[]rs;
"<1>==========="$;
rs %** $;
"<2>==========="$;
rs[.f3 .f1]=>rs;
rs %** $;
<1>===========
RS[S600R2C1:P]
Fields:[.f1.f2.f3]
Records:{
}
<2>===========
RS[S730R2C1:P]
Fields:[.f3.f1]
Records:{
}
Commentary #ns => @;
'<1>---------'$;
.num .name #rs => rs;
10 'n10'=>[]rs;
rs %** $;
'<2>---------'$;
.addr =>[]rs;
20 'n20' 'a20'=>[]rs;
rs %** $;
'<3>---------'$;
rs:fields,, $;
<1>---------
RS[I138R1C1:P]
Fields:[.num.name]
Records:{
[1]
[.num]Num[I86R1C1:I]10
[.name]String[I88R1C3:C]n10
}
<2>---------
RS[I248R1C1:P]
Fields:[.num.name.addr]
Records:{
[1]
[.num]Num[I86R1C1:I]10
[.name]String[I88R1C3:C]n10
[.addr]Nil
[2]
[.num]Num[I194R1C1:I]20
[.name]String[I196R1C3:C]n20
[.addr]String[I201R1C3:C]a20
}
<3>---------
.num .name .addr
Commentary #ns => @;
.num .name .addr #rs => rs;
rs.rec=>r;
10=>[.num]r;
'John'=>[.name]r;
'10 Easy St.' =>[.addr]r;
r=>[]rs;
rs %** $;
RS[I570R1C1:P]
Fields:[.num.name.addr]
Records:{
[1]
[.num]Num[I387R1C1:I]10
[.name]String[I430R1C4:C]John
[.addr]String[I473R1C11:C]10 Easy St.
}
Commentary #ns => @; .num .name #rs => rs;
10 'n10' => []rs;
20 'n20' => []rs;
rs[(2 1) (.name .num)] %** $;
RS[I208R1C1:P]
Fields:[.name.num]
Records:{
[1]
[.name]String[I88R2C3:C]n20
[.num]Num[I86R2C1:I]20
[2]
[.name]String[I44R2C3:C]n10
[.num]Num[I42R2C1:I]10
}
Commentary #ns => @;.f1.f2 #rs =>rs;
"<1>=============="$;
'r1f1''r1f2'=>[]rs;
'r2f1''r2f2'=>[]rs;
rs %** $;
"<2>=============="$;
'newr1f1' =>[(.f1)(1)]rs;
'newr2f2' =>[(.f2)(2)]rs;
rs %** $;
<1>==============
RS[S258R2C1:P]
Fields:[.f1.f2]
Records:{
[1]
[.f1]String[I287R1C4:C]r1f1
[.f2]String[I289R1C4:C]r1f2
[2]
[.f1]String[I325R1C4:C]r2f1
[.f2]String[I327R1C4:C]r2f2
}
<2>==============
RS[S258R2C1:P]
Fields:[.f1.f2]
Records:{
[1]
[.f1]String[I389R1C7:C]newr1f1
[.f2]String[I289R1C4:C]r1f2
[2]
[.f1]String[I325R1C4:C]r2f1
[.f2]String[I466R2C7:C]newr2f2
}
Commentary #ns => @;.f1 .f2 #rs =>rs;
'r1f1''r1f2'=>r1;
'r2f1''r2f2'=>r2;
r1 r2 @& =>[]rs;
rs %** $;
RS[S463R2C1:P]
Fields:[.f1.f2]
Records:{
[1]
[.f1]String[I487R1C4:C]r1f1
[.f2]String[I489R1C4:C]r1f2
[2]
[.f1]String[I512R1C4:C]r2f1
[.f2]String[I514R1C4:C]r2f2
}
Commentary .n #rs => t;
65..67 @& @& =>[]t;
.c=>[]t;
t[.n]:recs < @& #asc @& =>[.c]t;
t %** $;
RS[S337R2C1:P]
Fields:[.n.c]
Records:{
[1]
[.n]Num[I371R1C1:I]65
[.c]String[I500R2C1:C]A
[2]
[.n]Num[I372R1C1:I]66
[.c]String[I503R2C1:C]B
[3]
[.n]Num[I373R1C1:I]67
[.c]String[I506R2C1:C]C
}