"... he noticed that some of the mathematics in the paper seemed to resonate with parts of the Harmonic Maass theory ..."
;-)
"... he noticed that some of the mathematics in the paper seemed to resonate with parts of the Harmonic Maass theory ..."
Mosix3 etc # df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/hda3 28G 16G 11G 59% /
udev 502M 2.8M 499M 1% /dev
/dev/md/0 559G 541G 19G 97% /big
/dev/mapper/backup-backup
789G 359G 431G 46% /backup
shm 502M 0 502M 0% /dev/shm
/dev/md3 280G 33M 280G 1% /big2
It’s very difficult for a programmer used to imperative programming to find a good Haskell tutorial, or a good tutorial on any other functional language for that matter. It’s not that they don’t explain Haskell badly; many of them explain it rather well. It’s just that they explain the wrong parts of Haskell. Procedural programmers are more often interested in how to do I/O and create GUIs rather than in how to use Parsec or write monads.
Deux thèmes, un seul mot ce matin: langages.
Je prends des cours de chinois. Un soir par semaine. C'est peu mais c’est intellectuellement stimulant.
Ce que je trouve intéressant, c'est de comparer comment on dit une chose équivalente d'une langue à l'autre. Je parle couramment le français et l'anglais et j'ai déjà étudié le japonais et l'allemand. Je peux donc faire quelques comparaisons.
En japonais et en chinois, il y a des mots d'énumération. C'est un mot que l'on met entre le cardinal et l'objet compté et qui nous renseigne, un peu, sur la nature de l'objet compté. En japonais comme en chinois il existe un mot réservé au compte d'objet de forme ronde ou sphérique. Si on vous mentionne un mot que vous ne connaissez pas mais qui est précédé du mot d'énumération (et d’un cardinal!) pour les objets ronds ou sphériques, vous faites l'acquisition d'une information supplémentaire, qui jumelée au contexte, vous permet de (peut-être) deviner le sens du mot inconnu. Pratique.
Prenez aussi par exemple les pronoms relatifs en français. Avez-vous pensez ce que la langue serait sans eux? La phrase "La femme dont le mari est gros.." deviendrait "La femme, elle a un mari gros, ...". Même si les deux phrases ont la même signification, la première forme sonne mieux. Un petit mot, "dont", influence la syntaxe et la rend expressive (si vous trouvez un meilleur exemple, dites-le moi).
Le concept « d'expressivité par la syntaxe » n'existe pas que pour les langages humains. Il existe aussi pour les langages informatiques. On a qu'a comparer les langages de type fonctionnel (F#, ML, Erlang, Haskell, ...) aux langages impératifs (Java, C, ...). Leurs syntaxes sont radicalement différentes. Ils parviennent tous à exprimer les mêmes concepts mais sans les mêmes structures. Pour certains types de programmes, les langages de type fonctionnel mènent à des solutions plus élégantes.
Je m’intéresse pas mal ces temps-ci aux langages fonctionnels. J’étudie Lisp/Scheme et j’aimerais bien avoir le temps de jeter un coup d’œil à Haskell ou Erlang (ce dernier se prêtant pas mal bien à la programmation concurrentielle). Je trouve stimulant d’être exposé à autre chose que des langages impératifs auxquels tous sont familiers. Je suis convaincu qu’apprendre sur les langages fonctionnels fera que je serai plus productif et clair avec les langages impératifs que j’utilise les plus souvent.
En Lisp, en écrivant une macro on créé une nouvelle structure du langage qui altère la structure, la rendant plus expressive. Cette caractéristique du langage n'existe pas dans les langages de type impératifs.
En Haskell, par le biais du « pattern matching » on peut décrire à l’intérieur de la signature d’une fonction des cas d’utilisation de celle-ci plutôt que de recourir à une structure de type « case » dans le corps de la fonction.
Voilà pour ce matin. Si je pense à autre chose, je l'écrirai.