// stepped dictionary show d:(10*til 10)!til 10; d 10 40 35 -10 100 // non existent keys return a null of type value d s:`s#d // apply sorted attribute s~d attr each(d;s) s 10 40 35 -10 100 // returns value of max key less than or equal to the index show s:`s#0 1 10 100!1 2 3 4 // comparable to if else and bin ifelse:{$[x>=100;4;x>=10;3;x>=1;2;x>=0;1;0N]} binsort:{1+0 1 10 100 bin x} (s;ifelse;binsort)@\:/:12 100 0 show s:`s#0 1 10 100!`bin1`bin2`bin3`bin4 // allows direct mapping to datatypes other than long binsort:{`b1`b2`b3`b4 0 1 10 100 bin x} // whereas bin must index another data structure (s;binsort)@\:12 63 r:10000?100 \ts:2000 s r \ts:2000 binsort r // comparable times // `s#10 30 20!1 3 2 // 's-fail. keys must be ordered