• [^] # Re: Perl 6

    Posté par . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 3.

    J'ai écrit récemment une dépêche relativement complète sur Perl 6, et moi aussi j'avais des étoiles dans les yeux en découvrant le langage (dans lequel j'ai du m'immerger un peu de force pour essayer d'être pertinent). Au final, j'étais content parce que Perl 6 empruntait des choses à des langages que j'aimais bien, notamment Haskell.

    Ça fait quelques mois maintenant que je n'ai pas lu de Perl 6, et si je me souviens bien de l'opérateur * servant à plein de choses différentes, j'ai un peu perdu les réflexes que j'avais acquis. Notamment, comprendre la définition de la liste Fibonacci ne me semble pas évident (je veux dire, comprendre pourquoi ça marche). En Haskell, en revanche, avec plus de mots et moins de symboles, ça donne

    > let fibo = 0 : 1 : zipWith (+) fibo (tail fibo)
    > takeWhile (< 10000) fibo
    [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765]
    > fibo !! 30
    832040


    Et si j'ai des doutes sur le comportement d'une fonction (par exemple que je ne connais pas zipWith), son type m'aide bien souvent à deviner ce qu'elle fait :

    > :t takeWhile
    takeWhile :: (a -> Bool) -> [a] -> [a]
    > :t zipWith
    zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]