Funciton/99 bottles of beer on the wall

← Back to Funciton
This is a Funciton program that outputs the lyrics to “99 bottles of beer on the wall”. It requires several of the library functions.
 ╔════╗
 ║ 99 ║
 ╚═╤══╝
 ┌──┴──╖
 │ 99b ║
 ╘══╤══╝
 │
 ╓┬────╖
 ╔════╗ ┌───╖ ╟┘99b ║
 ║ −1 ╟──┤ + ╟──┐ ╙──┬──╜
 ╚════╝ ╘═╤═╝ ├──────────────────────────┴─────────────────────────────┐
 ╔════╗ ┌─┴─╖ │ ╔════════════════════════════════════════════════════╗│
 ║ 99 ╟──┤ ? ╟──┘ ║ 93438979891487426396059469986395555362079573844971 ║│
 ╚════╝ ╘═╤═╝ ║ 71377306928718494179034460561943201885027745835961 ║│
 ┌──┴───╖ ║ 98129935108241412387473531261660077880505710501626 ║│
 │ 99bp ║ ║ 32694396343717333192558234646820019070451056711 ║│ ╔═════════════════════════════════════════════════════╗
 ╘══╤═══╝ ╚══════════════════════════╤═════════════════════════╝│ ║ 99 Bottles of Beer on the Wall (main function) ║
 ┌─┴─╖ ┌───╖ ┌─┴─╖ ╔═════════════════╗ │ ╟─────────────────────────────────────────────────────╢
 │ ‼ ╟───────────────────────┤ ‼ ╟──┤ ? ╟──╢ 445551776368547 ║ │ ║ 99b(x) = ║
 ╘═╤═╝┌─────────────────────┐╘═╤═╝ ╘═╤═╝ ║ 925186328623383 ║ │ ║ let a = 99bp(x); ║
 │ │╔═══════════════════╗│ │ │ ║ 851314944882510 ║ │ ║ let b = x ? "Take one down, pass it around,\n" ║
 │ │║ 15177132563375318 ║│ │ │ ║ 812246570019017 ║ │ ║ : "Go to the store, buy some more,\n"; ║
 ╔════════╗ │ │║ 07655616350359109 ║│ │ │ ║ 240477365113929 ║ │ ║ let c = 99bp(x ? x−1 : 99); ║
 ║ 318287 ║ │ │║ 82597577171382437 ║│ │ │ ║ 659548419629671 ║ │ ║ a ‼ " on the wall,\n" ‼ a ‼ ".\n" ‼ b ‼ ║
 ║ 023073 ║ │ │║ 18150105146396039 ║│ │ │ ║ 952755268258505 ║ │ ║ c ‼ " on the wall.\n\n" ‼ (x ? 99b(x−1) : "") ║
 ║ 603558 ║ │ │║ 2022986808360992 ║│ │ │ ║ 759402210908648 ║ │ ╚═════════════════════════════════════════════════════╝
 ║ 743780 ║ │ │╚══════════╤════════╝│ │ │ ║ 737406010882693 ║ │
 ║ 068900 ║ │ │ ┌─┴─╖ ┌───╖ │ │ │ ║ 018745757193818 ║ │
 ║ 028319 ║ │ │ │ ‼ ╟─┤ ‼ ╟─┘ │ │ ║ 597439618635403 ║ │
 ║ 948400 ║ │ │ ╘═╤═╝ ╘═╤═╝ │ │ ║ 821854707881243 ║ │
 ║ 620075 ║ │ │ ┌─┴─╖ │ ┌─┴─╖ │ ║ 92049082452 ║ │
 ║ 955580 ║ │ └─────┬───┤ ‼ ╟────────┤ ‼ ║ │ ╚═════════════════╝ │
 ║ 347161 ║ │ │ ╘═══╝┌──────┐╘═╤═╝ └─────────────┐ │
 ║ 651333 ║ │ ╔═══╗│┌──────╖│╔════╗│ ╔╧═════════╗ │ │
 ║ 590970 ║ │ ║ 0 ║└┤ 99bp ╟┘║ −1 ║└┐║ 20971566 ║ ├────────────┘
 ║ 678045 ║ │ ╚══╤╝ ╘══════╝ ╚══╤═╝ │╚══════════╝ │
 ║ 336290 ║ ┌─┴─╖ ┌─┴─╖ ┌─────╖ ┌┴──╖├──────────────────────┘
 ║ 721824 ╟──┤ ‼ ╟──┤ ? ╟──┤ 99b ╟──┤ + ║│
 ╚════════╝ ╘═══╝ ╘═╤═╝ ╘═════╝ ╘═╤═╝│ ╓┬──────╖
 └───────┬───────┘ │ ╟┘ 99bp ║
 └──────────┘ ╙───┬───╜
 ┌────────────────────────────────────────────────┴──────────────┐
 │╔══════════════════════════════════════════╗╔═══════════╗ │
 │║ 8592134145756414358602136806465202028576 ║║ 232783950 ║ │ ╔══════════════════════════════════════╗
 │╚══════════════════════════════╤═══════════╝╚╤══════════╝ │ ║ 99 Bottles (helper function) ║
 │ ┌───╖ ╔═══╗ ┌─┴─╖ ┌───╖ ┌─┴─╖ ┌─────────╖ │ ╟──────────────────────────────────────╢
 └───────────────┤ = ╟──╢ 1 ║ │ ‼ ╟──┤ ‼ ╟──┤ ? ╟──┤ int→str ╟──┴┐ ║ 99bp(x) = ║
 ╘═╤═╝ ╚═══╝ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ ╘═════════╝ │ ║ let a = (x ? int→str(x) : "No"); ║
 ╔═══╗ ┌─┴─╖ ┌─┴─╖ │ └──────────────────┘ ║ let b = (x = 1 ? "" : "s"); ║
 ║ 0 ╟──┤ ? ╟─────────┤ ‼ ╟──┐ ║ a ‼ " bottle" ‼ b ‼ " of beer" ║
 ╚═══╝ ╘═╤═╝ ╘═══╝ │ ╚══════════════════════════════════════╝
 ╔════╧╗╔════════════════╧════════════════════════════════╗
 ║ 115 ║║ 20338288213193790107412311132593873016630280224 ║
 ╚═════╝╚═════════════════════════════════════════════════╝
Category:Examples