Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
43
Task/Align-columns/Transd/align-columns.transd
Normal file
43
Task/Align-columns/Transd/align-columns.transd
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#lang transd
|
||||
|
||||
MainModule : {
|
||||
txt:
|
||||
"Given$a$text$file$of$many$lines,$where$fields$within$a$line$
|
||||
are$delineated$by$a$single$'dollar'$character,$write$a$program
|
||||
that$aligns$each$column$of$fields$by$ensuring$that$words$in$each$
|
||||
column$are$separated$by$at$least$one$space.
|
||||
Further,$allow$for$each$word$in$a$column$to$be$either$left$
|
||||
justified,$right$justified,$or$center$justified$within$its$column.",
|
||||
tabl: Table(),
|
||||
n: 0,
|
||||
colWidths: Vector<Int>(),
|
||||
|
||||
print: (λ centered Bool(false)
|
||||
(for n in Seq(0 (num-rows tabl)) do
|
||||
(with row (get-row tabl n)
|
||||
(for m in Seq(0 (num-cols tabl)) do
|
||||
(with wid (+ 1.0 (get colWidths @idx))
|
||||
word (get row m) wl 0.0 lef 0
|
||||
(if centered (= wl (size String(word))) (= lef (/ (- wid wl) 2.0))
|
||||
(textout width: lef "" width: wl word width: (- wid (+ wl lef)) "")
|
||||
else
|
||||
(textout width: wid (get row m)))))
|
||||
(lout ""))
|
||||
)
|
||||
),
|
||||
|
||||
_start: (λ
|
||||
(load-table tabl txt fieldSep: "$" :emptyEls)
|
||||
|
||||
(for i in Seq(0 (num-cols tabl)) do (= n 0)
|
||||
(tsd-query tabl
|
||||
reduce: [i]
|
||||
as: [[String()]]
|
||||
using: (λ (set n (max (size (get @row 0)) n))))
|
||||
(append colWidths n)
|
||||
)
|
||||
(textout :right "") (print)
|
||||
(lout :left "") (print)
|
||||
(lout "") (print true)
|
||||
)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue