# Split the text at $ and then justify each word 3 ways N ← {"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."} Ls ← ≡⍚(⊜□≠@$.) # Get the word arrays. PadC ← ↻:⊙(⌊÷2-)⊃(⬚@ ↙|⊙⧻) # Pad centre. Pad! ← ≡/◇⊂⍉≡≡⍚^! # Apply a padding function to all. Prep ← ( ≡◇⬚""↙/↥≡◇⧻. # Pad each row to same length. +1≡◇(/↥≡◇⧻).⍉ # Find required length for each column. ) ≡(&p/$"_\n_")[⊃(Pad!⬚@ ↙|Pad!(⬚@ ↙¯)|Pad!PadC)] Prep Ls N