A dynamically-typed functional developer with an imperative to keep learning
/**!
*
* ooo ooooo .oooooo..o
* `88. .888' d8P' `Y8
* 888b d'888 oooo ooo Y88bo. .ooooo. oooo oooo oooo d8b .ooooo. .ooooo.
* 8 Y88. .P 888 `88. .8' `"Y8888o. d88' `88b `888 `888 `888""8P d88' `"Y8 d88' `88b
* 8 `888' 888 `88..8' `"Y88b 888 888 888 888 888 888 888ooo888
* 8 Y 888 `888' oo .d8P 888 888 888 888 888 888 .o8 888 .o
* o8o o888o .8' 8""88888P' `Y8bod8P' `V88V"V8P' d888b `Y8bod8P' `Y8bod8P'
* .o..P'
* `Y8P'
* ============================================================================================================
* John Loy v39.0-beta
* http://johnloy.net
*/
...............................................................................................................
..................................... . .. . . ...................*.................................
......... ___________________ .. ____....-----....____ .. .. ....*..'.....".............................
....... (________________LL_) ============================== .......'...,.................................
............ ______\ \_______.--'. `---..._____...---' ...................................................
............ `-------..__ ` ,/ . . . . ... .............................................
........................ `-._ -. -. - | { Boldly goes, but Next Gen please! }
............................ `-------' .......
...............................................................................................................
.......................................................................................... \`*-.
.......................................................................................... ) _`-.
................................................. ...... ....... . .. ................. . . : `. .
.................................. . ..... ..... ............. ...{ Friend to felines } : _ ' \
................................ ....... ............. ....... ..... .... ..... .... .. ; *` _. `*-._
.................................... ..................:::~~:,,.,. ....................... `-.-' `-.
................................. ... .. .........+??+??I?I+?==~~==:,........ ............ ; ` `.
............................... . . . . .=IZ77+::==~~=+=+++??I7?=:,~: ............... :. .
.............................................I$OZ?:,,,,:~~~=+???++???===III?,............. . \ . : .-'
...{ Born on the 4th of July }... .. .. $ZO$?,,,.:.::~:~=+~++?I?++==~:~?O$?~........... ' `+.; ; '
................................ ..... . :ZDZ=,.::,,,:~:~:::==????II?++=~:~+OO8I.......... : ' | ;
........ o .... .......................$88I,,.,,.,,~:~:==:==I??7IIII?I?=:::~?ZZ7=........ ; ' : :`-: _
....... /\ ..................... ...$8Z=,,.....,,~+~~==:=~I7I7I$$$7I??+~~:~+DDZ? .......*' / .*' ; .*`- +'
...... /::\ ................... ...,$87+,,........:,=====~==I777I$$7$I??==:~~?ON$I .. `*-* `*-* `*-*'
..... /::::\ ..................... Z$Z?,.... ... ,~~~~~~=+II7I7$$$$$7II++~~~=7ND?$ ............ .... . .. ..
.... /\::::/\ ................ ..~$$+~,.., .. ...~~~~~~++?I7$ZZ$ZZ7$7??++=~~+8OO7+.........................
... /\ \::/\ \ ...................$$?+~: ... ....,,~:~~~===II7I$OZZZ$$77$I=+=~=$DDZI,..... ........... ..
.. /\ \ \/\ \ \ .................,$I+=:.......,...,,~:=??=?+?I$7Z7ZZ77$$??+==~?$OZ$$+ ..... ..... .... ......
. / \ \ \ \ \ \ .............. .+I??~.... ........,:~~+++=+?=?7I777$I77III?++?$$O$7$,........... .... ......
/ \ \ \ \ \/..................+7~~:,. ..... ...,::==?=+==?7$Z777?IIII?+?+?$OOO7Z?..... ......... .....
/ \ \ \ \/ . . ..... ... ... $7++..... . .. .. ,:::~+=~+I=?I$$$7$7$I?+I?++77DODZ77. .....................
/ \ \ \/ . .. . ... 7$I:.... .. ...,..,:~:~===?+=777I7$$777I+++++?IOD878Z:......................
\ \/ .................,77?....... .:++II7$7+~:=:~???77Z$8M8ZZ77I?==??+$DDZ8Z,......................
\/ . ..............~=?= . ... .~+?77??=~,,.~I$ZZ$O8DDDNDNO$I==+?I?NOODD: .....................
...... . .. ................=~7... ... .:++I8O$$$?:...~?7ZZ8NDN8$$$OOO$?+=+?+OM7N8, .....................
..................................,+I ......=.++7MMNDDDZ?...:IIZODMMNNOZI77IIII+?I=?DZNO. .....................
................ . .. ... ..:=7I........= .ZMMO$NO7I. .:I77NMMMMNMMM8O$IIII??++N8OD. .....................
.......... . ... ...........~~.=,,..... . :~II77$7+...:=IZZMDMMMMMMMZ+8I7I????=N887.......................
............ ... .. ............+,.+.. . .... :++$7II,.,.:+77$8NMMMMNMNZ$????I?II+7Z8$?......................
................... .. ... . 7=.~.. .,,. ...,:~+I=, ...,=I7I$8NNMMDDOZI==+?77II?Z7Z7M7 ....................
........ ...... .......... .. 7..?,..,.,:~::~==?~~, .....:?7I77ZZ8D8DOZZIIIII??III$7ZM8 ....................
......... . . ..... ... ... ..::++.,. . ,~~=+==::......,+???77$ZO8Z$$7Z$77?I?III777MM.....................
...... ..... .. .. . .. ?O~.........,,,:=~+~.... .~=I???7Z$O$88O$7I7??III+7MO$MO.....................
............... ... .... ....... ~=$I....... ....:~~?=:.....:II??I$OOZ$$7$$7I?I?7II+$MDDZO .................,..
........ ............ .. ...:..+.... .......:+??II ...+I7?I?NDD88ZZZ$77III?I??OMMM$?.....................
................................., ..,.,.. .....~+7$$+,ON+.IIIDMOOMMD88$$II?I$7?$?+ZMMZO. ................. .
. ....... .... ... ..... .................... ..=I$7~,:,,,,~OZZO8ONMDDOZZ$IIII777?IMI?Z? .....................
.......... . . ... .. ... .,...... ..,==?+:,. ..:~O$ODO$$Z8MN8OZI77I?77?+?$$+?, .....................
........ . .. .. ..... ...... ..:.,... ..,,:,=~~,:+~7=I8OZMDD8ZODNDOZ$$?7+7I+?$???........................
......................................... .:,.,,.===+~=+I7$IMO8MMMZMOMDND$OI77II?+IZI?, .......................
............................................,,,.?Z8$?~=?=~=ZNOOMDMNMMMMNDZZ$777I??I ...........................
.... ................................:.....,..,$NMM?:=+?+??7DNDOOZDNMMMO8Z777II?I, ...........................
...................................... ,. .... ~8MM: .. .~~?+7ZZ$$ODMMMMZO$$$7$7I7,............................
....... ....... .. . . .............~:,....,=ZD=,,:,,:=++$ZZZ$77Z8MMM$I777I$I$?.............................
..................... ...............~, .,.,:?$+,.. .~+O$ZDMNNN88ZOMMMZ$777I$77~.............................
........................................:,..,,:I7?: . .,=I7ZMNDDZ8OZODMMZO$$I$7$$..............................
..... ..................................~~:,,~+?,,.. . ,:=7ON8DOZ$ZDMMO$$O7Z$Z7+..............................
....... ..................................:,~:=I~~: .:.,:=?Z$OZO$ODZDM8OOOZ$O7$~..............................
.... .......... .. ... .................:::+=+?===:::=~?IIOD7O8NMDMD8O8OZZZ$?=..............................
...........................................~~+:+??+?+?+==7$Z$$NDOZNNDMNDO8Z7$$I?=..............................
...................................... ,,...,~I7?+===+:=+IZZ7$DNNDD8NNMND8Z$777I+ .............................
.... . .................................... .:+$+~+~~=77?I77$IOODOMOMNNZ7$$Z7I7I. ............................
....... ........................................,~++I?7?8OO8DIZD$DMNMMDZ$7$ZZ7$$?,.:+ .........................
......... .... .. ...... . .....................~~7+7$$I8OZOO8ZDODDDZZI7$$$$$$I,,:DMD:. .....................
................ . .... ... ....................,:?=7I?$$$ZOOZ$ZI$??II7$$O88~,,,:NMMMO:.....................
......... ......... .. .............................,:,:~+I=??+I?=~+=+?77$OONM~,,,,~8MMMMMO....................
................. .......................... ......,.,::~==~==~~~~~=++?7$8D$,,,.,::ZMMMMMMDZ:. ...............
.......................................... , .... . ..:~~====~=~~=~=+?I7ZO,:,,,,,,~$MMMMMMMNMN8. .............
........................................ . :=:..... ..,,:~====~=~~~~==+?I7 .,,,,,,:~7MMMMMMMMMMMNO~:...........
............ ....... ...................$7 ??$....... ..,:~====~~=~===+?...,,,,,,::=$MMMMMMMMMMMMMMMO: ........
......................... .. ........ $Z..?7Z...........,~~====~~~~~~~ :. ,.,,,,:~=7MMMMMMMMMMMMMMMMMMNO7+=.
.......................... ..........+7$7..,$D............,:~~=~~~~::.,,,:: ,,,,::~=7MMMMMMMMMMMMMMMNM8MND8O88O
...................................?7$O. .,OO............,,:~~~::, =:,,,:~~..,:::~=7MMMMMMMMMMMMMMMMMDMMMNNO88
..................................,+IZDD ...78?......... ..,,::::,.~,:,,,::~= ,,::~=IMMMMMMMMMMMMMMMNMMMMDDMZD7
.... ............. ............ :7$ZDZ?....:8$+ ....... ..,,:,,,. ::::~~~, ..,:::~=MMMMMMMMMM8MMMMMMMMNNNO88NN
.................... .... ....:$77O8MN,...,,8O$~ ...... ...,:... :::::: ..... :::=IMMMMMMMMMMMMMNNMMMMNMM87NZN
........... ..... ...... :Z?$?ZO8MM.,.,.,DO$I~................,:..,.... .:::,:+MMMMMMMMMMMMM$MMDZM87NN$8OMM
.. .......................:$??$Z7D7MN+., ..,O8Z$I=....,...........,,.. .,::~= ::+MMMMMMMMMOM$DMM8O$$OZMMMZMM8
........................ ,7O77$I7$I$ZD..~~,..~Z$77?~...,...... ...... .,,:~=~~,:~?MMMDMDN8MZN7MNMOZ87D8ZMONMMN
............... ... .. :.ZNOI$$77$$ZM=.:+= ,..=~:,,+~..,,,........ ,.,:,====~~~:.~MD$D$D$M8OI7DOMMMO$OIDMOZZMMM
.................. .?7$Z=77I7ZZ8ZOZD..7?+=.,.,::,.. ,,,,....... .,,~~=++====~~:,=$DZD$ZNMOZO7D88MM$8DODM?8MMMN
.................,?+I7ZZ7$7I+O$Z8$8$$.=====~~..,,...... ::......,~====+++===~~:,..O$O7DZ8OMZD$MIMMM8$IZMMDDMMMN
. ............:+II7I$8Z$777$$7$$7I8M.+~:::::.... ....... ,~..,~~~+=+++====~~:. .:OZDOMDMON$D$O$MMD$8Z8MO$NMMMM
......... .+?I7+7778O7$II7Z88Z778DN +~:, .............,....,:==~~~=++=:,,,..... 7OID8MZMZN7M88IMDN$ZMMM$DMMMMM
........ .++$7I$7I7NI+?7$OO$7Z$I7ZMO~~~:.................,,:~===~~?=~: ......... 77OZ8N$Z$D8ZNZZMMM7NMMON8MMMMM
.......:+IIIZIIIIOOZ87Z$$ZZZZ$O7ZNM?:::,................:~=++=++=~,. ........... 87O$MD8DZMMO8Z8MMM$MMMDZMMMMMM
......,??I$$8ZIZDOM7ZOZZNO$NO78O$DM=~::................:~=?++=:..+ .............$8ZNZM8ND8ZN8ND7MD?ZMMDDZMMMMMM