sortTable: function [tbl][ reversed?: (attr 'reverse)?? false column: to :string (attr 'column)?? 0 result: sort.by: column map tbl 'r [ to :dictionary flatten couple @ 0..dec size r r ] if reversed? -> reverse 'result return map result 'r -> values r ] printTable: function [tbl, title][ print ["==" title] loop tbl 'row [ print row ] print "" ] lst: [ ["a", "b", "c"] ["", "q", "z"] ["zap", "zip", "Zot"] ] printTable sortTable lst "Default sort" printTable sortTable.column:1 lst "Sorting by column=1" printTable sortTable.reverse lst "Sorting, reversed" printTable sortTable.reverse.column:1 lst "Sorting by column=1, reversed"