McNuggets problem: Difference between revisions

→‎{{header|Python}}: Swapped in dropwhile and fromTo
(→‎{{header|JavaScript}}: dropWhile in lieu of filter)
(→‎{{header|Python}}: Swapped in dropwhile and fromTo)
Line 256:
 
 
Composing generic abstractions, including dropwhile:
Or, by set subtraction, composing generic abstractions:
<lang python>from itertools import (chain, dropwhile)
 
 
def main():
fromTo = enumFromTo(0)(100 // 6)
print(
nuggets = set(
list(set(enumFromTo(1)(100)) - set(
concatMap(
lambda x:
concatMap(
lambda xy:
concatMap(
lambda yz: (
concatMap lambda v=sum([6 * x, 9 * y, 20 * z]): (
lambda z: ( [v] if 101 > v else []
lambda v=sum([6 * x, 9 * y, 20 * z]): (
[v] if 101 > v else [])()
)(fromTo(100 // 20))
)(fromTo(100 // 9)()
)(enumFromTo(0)fromTo(100 // 206)))(
)
enumFromTo(0)(100 // 9)))(
xs = list(dropwhile(
enumFromTo(0)(100 // 6)
lambda x: x in )nuggets,
enumFromThenTo(100)(99)[-(1]))
)
print(
xs[0] if xs else 'No unreachable quantities found in this range.'
)
 
Line 286 ⟶ 291:
def concatMap(f):
return lambda xs: list(chain.from_iterable(map(f, xs)))
 
 
# enumFromThenTo :: Int -> Int -> Int -> [Int]
def enumFromThenTo(m):
return lambda next: lambda n: (
list(range(m, 1 + n, next - m))
)
 
 
9,655

edits