fork download
  1. def unfold(f, x):
  2. xs = f(x)
  3. while xs:
  4. yield xs[0]
  5. xs = f(xs[1])
  6.  
  7.  
  8. digitNames = {
  9. 0: "Zero", 1: "One", 2: "Two", 3: "Three", 4: "Four",
  10. 5: "Five", 6: "Six", 7: "Seven", 8: "Eight", 9: "Nine"
  11. }
  12. numbers = [16, 58, 510]
  13.  
  14.  
  15. def number_to_string(number):
  16. return reduce(lambda x,y : y + x,
  17. unfold(lambda n: None if n <= 0
  18. else (digitNames[n % 10], n // 10),
  19. number),
  20. '')
  21. strings = [number_to_string(number) for number in numbers]
  22.  
  23. for s in strings:
  24. print(s)
Success #stdin #stdout 0.01s 7896KB
stdin
Standard input is empty
stdout
OneSix
FiveEight
FiveOneZero