Semigroup repeat (base package)

Wolfgang Jeltsch wolfgang-it at jeltsch.info
Tue Sep 12 13:03:17 UTC 2017


No. Functions like foldl1 are named such because they start building a
value with the first (“1”) value of a list and consequently do not work
with empty lists. They have counterparts without the “1” in their names,
which receive the initial value as an extra argument. Things are
completely different with cycle1, which does not even take a list.
All the best,
Wolfgang
Am Dienstag, den 12.09.2017, 09:19 +0200 schrieb Sebastian Graf:
> It's the same convention as with other Semigroup-like functions, such
> as `foldl1`, `scanl1`, etc.
> Doesn't really makes sense to distinguish between `cycle` and `cycle1`
> in this case, but that's just bike shedding.
> 
> Also, at some point in the future, `cycle` can go in `Data.OldList`
> and be replaced by `cycle1`, renamed accordingly.
> 
> On Mon, Sep 11, 2017 at 10:12 PM, Wolfgang Jeltsch 
> h.info> wrote:
> > Am Montag, den 11.09.2017, 06:55 +0530 schrieb Harendra Kumar:
> > > On 11 September 2017 at 02:46, Wolfgang Jeltsch wrote:
> > > > Am Sonntag, den 10.09.2017, 10:39 +0200 schrieb Herbert Valerio
> > > > Riedel:
> > > > > What you seem to be searching for looks more like what we know
> > as
> > > > > `cycle :: [a] -> [a]`, and in fact there is its generalisation
> > at
> > > > >
> > > > > http://hackage.haskell.org/package/base-4.10.0.0/docs/Data-Sem
> > igroup.html#v:cycle1
> > > >
> > > > Why is this function called cycle1, not cycle? What does the “1”
> > > > stand for?
> > >
> > > I guess this is not named "cycle" to avoid conflict with
> > > "Data.List.cycle".
> > 
> > Why? We have qualified imports. It seems very wrong to add single
> > characters to identifiers to denote name spaces.
> > 
> > > I was also wondering why it is "cycle1" instead of, say "scycle".
> > It
> > > can be thought of as cycling just one value instead of cycling a
> > list
> > > in case of "Data.List.cycle".
> > 
> > Also Data.List.cycle cycles only one value. It is just that this
> > single
> > value happens to be a list. If you specialize cycle1 to the list
> > monoid,
> > you get exactly Data.List.cycle.
> > 
> > All the best,
> > Wolfgang
> > _______________________________________________
> > ghc-devs mailing list
> > ghc-devs at haskell.org
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
> > 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20170912/9940f3c5/attachment.html>


More information about the ghc-devs mailing list