Semigroup repeat (base package)

Wolfgang Jeltsch wolfgang-it at jeltsch.info
Mon Sep 11 20:12:04 UTC 2017


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-Semigroup.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


More information about the ghc-devs mailing list