Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
22
Task/Optional-parameters/Nim/optional-parameters.nim
Normal file
22
Task/Optional-parameters/Nim/optional-parameters.nim
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
import algorithm, strutils, sugar
|
||||
|
||||
proc printTable(a: seq[seq[string]]) =
|
||||
for row in a:
|
||||
for x in row: stdout.write x, repeat(' ', 4 - x.len)
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
proc sortTable(a: seq[seq[string]], column = 0, reverse = false,
|
||||
ordering: (proc(a,b: string): int) = system.cmp) : seq[seq[string]] =
|
||||
let order = if reverse: Descending else: Ascending
|
||||
result = a
|
||||
result.sort(proc(x,y:seq[string]):int = ordering(x[column],y[column]), order)
|
||||
|
||||
const data = @[@["a", "b", "c"], @["", "q", "z"], @["zap", "zip", "Zot"]]
|
||||
|
||||
printTable data
|
||||
printTable sortTable(data)
|
||||
printTable sortTable(data, column = 2)
|
||||
printTable sortTable(data, column = 1)
|
||||
printTable sortTable(data, column = 1, reverse = true)
|
||||
printTable sortTable(data, ordering = (a,b) => cmp[int](b.len,a.len))
|
||||
Loading…
Add table
Add a link
Reference in a new issue