a # 1 60 R ' z#table tlu args;w;r;l ' a # a,[1] ' ''args and table disagree''hang~table is args#matrix args ' a # a,[1] ' table#(firstm table[;I-1YRargs])`/table ' a # a,[1] ' l#V/r#args&.=Ttable[;Iw#-1YRargs] ' a # a,[1] ' z#l`\(0,w)Utable[(,r)/,(Rr)RI-1YRr;] ' a # a,[1] ' $0 if&/l ' a # a,[1] ' ''not found:''on(~l)`/args ' a # a,[1] ' '''' ' a # a,[1] ' $0 ' a # a,[1] '"tlu - table look-up of structured arguments ' a # a,[1] '"from ''the apl handbook of techniques'' copyright 1978, ibm. ' a # a,[1] '"-returns a matrix of substitutions corresponding to a ' a # a,[1] '" matrix of arguments. the substitutions are found in a ' a # a,[1] '" table whose initial columns will be matched against any ' a # a,[1] '" number of arguments, in any order. ' a # a,[1] '"-the arguments are usually presented as a matrix, but a ' a # a,[1] '" single argument may be vector or scalar. ' a # a,[1] '"-undiscovered functions will be returned as blanks (or ' a # a,[1] '" zeros). ' a # a,[1] '"-the unmatched arguments will be reported at the terminal. ' a # a,[1] '"-if the argument portion of the table is not unique, the ' a # a,[1] '" function of the first occurrence of the argument in the ' a # a,[1] '" table will be returned. ' a # a,[1] '"-uses: Ghang, which preserved the stack for analysis. ' a # a,[1] '" Gfirstm to remove duplicates from table. ' a # a,[1] '" Gis to check whether table and argument are either ' a # a,[1] '" both numeric, or both character. ' a # a,[1] '" Gmatrix Gif Gon ' Lfx a