[Haskell-fr] multilet ?

Simon Marechal simon at banquise.net
Fri Jun 23 09:46:46 UTC 2017


clustersOf s =
        filter ((== s) . length) . map (take s) . tails

clusters_of size list =
        map (take size)
        $ map (`drop` list) [0..length list - size]

La différence est je pense principalement une question de goût. Je trouve
évidemment ma version plus simple à comprendre ;)

Après on peut faire presque pareil comme ça:

clustersOf s lst = map (take s) $ take (length list - size) $ tails lst


Le 23 juin 2017 à 11:03, Marc Chantreux <khatar at phear.org> a écrit :

> hello,
>
> On Thu, Jun 22, 2017 at 06:04:34PM +0200, Simon Marechal wrote:
> > Je t'ai mis un commentaire dans ton gist avec une technique très
> classique
> > pour compter le nombre d'occurences d'éléments d'une liste.
>
> merci beaucoup! je (re?)découvre l'existence de <$> (comment ai-je pu vivre
> sans?)
>
> premiere question qui me vient: tu proposes
>
> clustersOf s =
>         filter ((== s) . length) . map (take s) . tails
>
> ou j'ai écris
>
> clusters_of size list =
>         map (take size)
>         $ map (`drop` list) [0..length list - size]
>
> j'aurais tendance a préferer ma solution qui ne necessite pas de
> filtrage. pourrais-tu me dire ce qui te motivait en écrivant ta version?
>
> pour le reste: lecture à la prochaine pause.
>
> --
> Marc Chantreux (eiro on github and freenode)
> http://eiro.github.com/
> http://eiro.github.com/atom.xml
> "Don't believe everything you read on the Internet"
>     -- Abraham Lincoln
> _______________________________________________
> Haskell-fr mailing list
> Haskell-fr at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-fr
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-fr/attachments/20170623/92997d24/attachment.html>


More information about the Haskell-fr mailing list