News for hackers. Stuff that matters.
Re:Map/Reduce for Mortals by adamch on Tuesday January 14, 2020 @02:18PM (#22048239)
Or in functional rust

  (1..5)
    .into_iter()
    .filter(|i| i % 3 == 1)
    .map(|i| i * i)
    .sum();
I don't know if we really need a new syntax for map reduce.
Re:Map/Reduce for Mortals by crooked-v on Tuesday January 14, 2020 @03:18PM (#22048832)
That's also basically the same syntax as doing it in JS, aside from the lack of builtins:

    import { range } from 'ramda';

    range(1, 6)
      .filter(i => i % 3 === 1)
      .map(i => i * i)
      .reduce((a, b) => a + b, 0);
Or, if you're using the pipeline operator (experimental, stage 1, nobody can quite decide on exactly the syntax but this gives the rough idea):

    import { range, sum } from 'ramda';

    range(1, 6)
      |> x => x.filter(i => i % 3 === 1)
      |> x => x.map(i => i * i)
      |> sum
Re:Map/Reduce for Mortals by 1-more on Wednesday January 15, 2020 @11:03AM (#22055356)
We can get rid of these arrows using ramda's curried list functions, at the expense of being slower and harder to read but making us feel more clever:

  pipe(
    range,
    filter(pipe(
      modulo(__, 3), // x => x % 3
      equals(1) // y => y === 1
    )),
    map(flip(Math.pow)(2)),
    sum
  )(1,6)