• [^] # Re: Retour d'expérience sur la première session

    Posté par . En réponse à la dépêche Apprendre la programmation fonctionnelle avec le MOOC OCaml. Évalué à 2.

    Tu veux prendre de l'avance :-p ?

    Oh non, je ne pense pas m'inscrire à la formation, je n'ai pas besoin d'être initié à la programmation fonctionnelle. ;-)

    Mon premier projet en OCaml (et mon seul d'ailleurs, je ne suis pas développeur) consistait à implémenter un EDSL d'arithmétique transfinie, et ma machine était sous Windows 98. Même si je ne programme plus, ou peu, cela m'a permis de comprendre véritablement le problème de l'arrêt et pourquoi l'hypothèse du continu de Cantor était indécidable.

    Je suis dans une position inverse de la tienne, en tant que mathématicien c'est plutôt les paradigmes impératif et orienté objet qui me semble difficile à comprendre par moment. Quand je lis du code dans ces paradigmes, j'ai souvent l'impression de tomber sur la comptine des neufs divisions

    Division par 1 :

    • Pas besoin de diviser. (1 étant le nombre élémentaire, la division n’est pas nécessaire). La méthode n’est pas définie.

    Division par 2 :

    • 2, 1, augmente-le pour obtenir 5.
    • Si tu rencontres 2, avance 10.

    Division par 3 :

    • 3, 1, 31.
    • 3, 2, 62.
    • Si tu rencontres 3, avance 10.

    Division par 4 :

    • 4, 1, 22.
    • 4, 2, augmente-le pour obtenir 5.
    • 4, 3, 72.
    • Si tu rencontres 4, avance 10.

    Division par 5 :

    • 5, 1, double-le pour obtenir 2.
    • 5, 2, double-le pour obtenir 4.
    • 5, 3, double-le pour obtenir 6.
    • 5, 4, double-le pour obtenir 8.
    • Si tu rencontres 5, avance 10.

    Division par 6 :

    • 6, 1, ajoute 4 en dessous.
    • 6, 2, 32.
    • 6, 3, augmente-le pour obtenir 5.
    • 6, 4, 64.
    • 6, 5, 82.
    • Si tu rencontres 6, avance 10.

    Division par 7 :

    • 7, 1, ajoute 3 en dessous.
    • 7, 2, ajoute 6 en dessous.
    • 7, 3, 42.
    • 7, 4, 55.
    • 7, 5, 71.
    • 7, 6, 84.
    • Si tu rencontres 7, avance 10.

    Division par 8 :

    • 8, 1, ajoute 2 en dessous.
    • 8, 2, ajoute 4 en dessous.
    • 8, 3, ajoute 6 en dessous.
    • 8, 4, augmente-le pour obtenir 5.
    • 8, 5, 62.
    • 8, 6, 74.
    • 8, 7, 86.
    • Si tu rencontres 8, avance 10.

    Division par 9 :

    • Pour diviser par 9, suis la tige actuelle en dessous.
    • Si tu rencontres 9, avance 10.

    Celui qui comprend cela à la première lecture, et en quoi cet algorithme implémente la division en arithmétique et est correct... je lui tire mon chapeau. ;-)

    Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.