lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Those weren't ironic quotes, and, while I appreciate the reply, I took
it personally.
On Fri, 9 Nov 2018 at 19:21, Luke <lemmett81@gmail.com> wrote:
>
> My expertise is in not being as clever as everyone else. There's no
> need to take that personally!
> On Fri, 9 Nov 2018 at 19:19, Luke <lemmett81@gmail.com> wrote:
> >
> > > t was thus said that the Great Luke once stated
> >
> > What, I'm just giving on opinion on what learning lua is like...
> > there's really no need to be rude at all
> >
> > Luke
> > On Fri, 9 Nov 2018 at 19:07, Sean Conner <sean@conman.org> wrote:
> > >
> > > It was thus said that the Great Luke once stated:
> > > > That's a shame.
> > > >
> > > > Are these "advanced concepts" difficult to learn or do they just
> > > > depend on handful of other terms? Seed was in the lectures' definition
> > > > of fold, and then the next slide confused confused me further:
> > >
> > >   Some, like "map" or "fold", are not difficult but depend upon other concepts;
> > > others like "monad" are so opaque as to defy definition (a monad is just a
> > > monoid in the category of endofunctors, or so I'm told, but I'm not a
> > > mathematician or type theorist).
> > >
> > > > But I believe that map never takes any parameters other than the
> > > > function it is called with: square builds a new function from a map
> > > > function that never sees the table.
> > >
> > >   Maybe "a" particular implementation of map() will do that, but not all.
> > > In general, you have three related concepts:  map, filter, reduce (or fold).
> > >
> > >         map: maps a list of values to new values, for instance:
> > >
> > >                 x = { 1 , 2 , 3 , 4}
> > >                 y = map(x,function(x) return x * x end)
> > >                 -- y has { 1 , 4 , 9 , 16 }
> > >
> > >         filter: filters out values that fit some criteria into a new list.
> > >
> > >                 y = filter(x,function(x) return x % 2 == 0 end)
> > >                 -- y has { 2 , 4 }
> > >
> > >         reduce (aka fold): maps a list of values to a single result, such
> > >                as the sum of all items:
> > >
> > >                 y = reduce(x,function(a,b) return a + b end)
> > >                 -- y is now 10
> > >
> > >   The think to keep in mind is that in general, map() need not work "left to
> > > right" (it can do it right to left, or all at the same time, etc.).
> > > reduce() will usually go "left to right" and if you need the opposite
> > > direction, there might be a reducer() function; filter works simularly, but
> > > as always, check the manual before using.
> > >
> > >   Also, every instance I've seen (in other langauges; other implementations)
> > > map() will also always take the data and a function to run over the items;
> > > same for filter() and reduce().
> > >
> > >   -spc (Remember, the meanings behind these terms will come in time,
> > >         except for monads ... )
> > >