fork download
  1. #!/usr/bin/env python3
  2.  
  3. from itertools import takewhile
  4.  
  5. ### 余再帰
  6. class unfoldr:
  7. def __init__(self, f, seed):
  8. self.f = f
  9. self.seed = seed
  10. def __iter__(self):
  11. return self
  12. def __next__(self):
  13. match self.f(self.seed):
  14. case a, b:
  15. self.seed = b
  16. return a
  17. case None:
  18. raise StopIteration
  19.  
  20. def fizzBuzz(n: int) -> list[str]:
  21. lazy_fb = unfoldr(lambda x: ('FizzBuzz' if x % 15 == 0 else \
  22. 'Fizz' if x % 3 == 0 else \
  23. 'Buzz' if x % 5 == 0 else \
  24. str(x), x + 1), 1)
  25. return [v for k, v in takewhile(lambda x: x[0] < n, enumerate(lazy_fb))]
  26.  
  27.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Traceback (most recent call last):
  File "/usr/lib/python3.9/py_compile.py", line 144, in compile
    code = loader.source_to_code(source_bytes, dfile or file,
  File "<frozen importlib._bootstrap_external>", line 918, in source_to_code
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "./prog.py", line 13
    match self.f(self.seed):
          ^
SyntaxError: invalid syntax

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3.9/py_compile.py", line 150, in compile
    raise py_exc
py_compile.PyCompileError:   File "./prog.py", line 13
    match self.f(self.seed):
          ^
SyntaxError: invalid syntax

stdout
Standard output is empty