McNuggets problem: Difference between revisions

Content added Content deleted
m (→‎{{header|JavaScript}}: Updated one primitive (defining bindlist as Array.flatMap))
(→‎{{header|JavaScript}}: (bindList -> .flatMap))
Line 570: Line 570:
// main :: IO ()
// main :: IO ()
const main = () => {
const main = () => {

const
const
size = n => enumFromTo(0)(
size = n => enumFromTo(0)(
Line 576: Line 575:
),
),
nuggets = new Set(
nuggets = new Set(
bindList(
size(6).flatMap(
size(6),
x => size(9).flatMap(
x => bindList(
y => size(20).flatMap(
size(9),
y => bindList(
size(20),
z => {
z => {
const v = sum([6 * x, 9 * y, 20 * z]);
const v = sum([6 * x, 9 * y, 20 * z]);
Line 602: Line 598:
};
};


// GENERIC FUNCTIONS ----------------------------------


// GENERIC FUNCTIONS ----------------------------------
// bindList (>>=) :: [a] -> (a -> [b]) -> [b]
const bindList = (xs, mf) => xs.flatMap(mf);


// dropWhile :: (a -> Bool) -> [a] -> [a]
// dropWhile :: (a -> Bool) -> [a] -> [a]