RosettaCodeData/Task/Optional-parameters/Arturo/optional-parameters.arturo
2023-07-01 13:44:08 -04:00

33 lines
774 B
Text

sortTable: function [tbl][
column: "0"
reversed?: false
unless null? c: <= attr 'column -> column: to :string c
unless null? attr 'reverse -> reversed?: true
result: new 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"