--- note: Rosetta Code related