Taxicab numbers: Difference between revisions

→‎{{header|Haskell}}: pp^2 (more legible pretty-printing code)
(→‎{{header|Haskell}}: pp^2 (more legible pretty-printing code))
Line 1,195:
taxiRow :: (Int, [(Int, ((Int, Int), (Int, Int)))]) -> [String]
taxiRow (n, [(a, ((axc, axr), (ayc, ayr))), (b, ((bxc, bxr), (byc, byr)))]) =
concat
[show n, ". ", show a, eq, op, show axr, cb, leq, show axc, cl] ++
[ad, op, [show ayrn, cb,". leq", show ayca, cl," or,= op, show bxr, cb"] ++
ad, =term axr axc " + "
[leq, show bxc, cl, ad, op, show byr, cb, leq, show byc, cl]
or, =term ayr ayc " or "
, term bxr bxc " + "
, term byr byc []
]
where
cbterm r c l = ["(", show r, "^3=", show c, ")", l]
eq = " = "
leq = "="
ad = " + "
or = " or "
op = "("
cl = ")"
 
-- OUTPUT -------------------------------------------------------------
Line 1,216 ⟶ 1,214:
let w = maximum (length <$> col)
in (justifyRight w ' ' <$> col)) <$>
transpose (taxiRow <$> (take 25 xs ++ take 67 (drop 1999 xs))))
where
justifyRight n c s = drop (length s) (replicate n c ++ s)</lang>
9,659

edits