McNuggets problem: Difference between revisions
→Python List monad: (enumFromTo -> enumFromThenTo)
m (→List monad) |
(→Python List monad: (enumFromTo -> enumFromThenTo)) |
||
Line 835:
Note that the innermost function wraps its results in a (potentially empty) list. The resulting list of lists, some empty, is then flattened by the concatenation component of '''bind'''.
<lang python>'''mcNuggets list monad'''
<lang python>from itertools import (chain, count, dropwhile, islice)▼
def main():
'''List monad equivalent of the list (or set) comprehension.'''
def size(n):
return
mcNuggets = set(
bind(size(6))(
bind(size(
lambda v=sum([x, y, z]): (
)())))▼
[v] if 101 > v else []
)
▲ )())))
)
Line 885 ⟶ 891:
list(range(m, 1 + n, next - m))
)
|