ptls.dev/online
-----------------------------------------------------------
-- Print the lyrics to the song '99 bottles of beer'

output =
  range(99, 1)
  |> map(showBeer)
  |> printLines

showBeer(n) =
  format("{} of beer on the wall!\n", [showBottle(n)]) +
  format("{} of beer!\n", [showBottle(n)]) +
  "You take one down, pass it around\n" +
  nextBeer(n - 1)

nextBeer(n) =
  if n == 0 then "No more bottles of beer on the wall!"
  else format("{} of beer on the wall!\n", [showBottle(n)])

-----------------------------------------------------------
-- Get appropriate singular / plural form of 'n bottle(s)'

showBottle(n) =
  format("{} {}", [n, bottleStr])
  where bottleStr = if n == 1 then "bottle" else "bottles"