| March 2008 | ||||||||
|---|---|---|---|---|---|---|---|---|
| Sun | Mon | Tue | Wed | Thu | Fri | Sat | ||
| 1 | ||||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | ||
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | ||
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | ||
| 30 | 31 | |||||||
(begin (display "Hello World !") (newline))
Ainsi commençai-je mon apprentissage du Scheme (lire skime), langage de programmation assez étrange après avoir programmé en CamlLight/OCamL dans un style inspiré à la fois par la fonctions imbriquées full-impératives ou full-récursives de Siegfried et par les procédures UNITales savament mélangés de Gense...
Le code rédigé en Scheme est d'une beauté absolument relative (comme tout les dialectes de Lisp). Il présente des accumulations de parenthèses que même analyseur d'expression régulière aurait du mal à traiter ! Mais la part la plus difficile de ce changement de langage est le typage, qui est passé d'une rigidité de chêne à une souplesse de roseaux. Assez de parlotte à propos de langage, ce n'est pas le point important de cet email...
En parallèle à cet apprentissage (merci Dorai Sitaram et ScrapBook), un regain d'intérêt c'est soudain déclaré pour mon petit algorithme de test de primalité (qui semblerait être très adapté au calcul en grappe)... J'ai donc deux grandes occupations (en plus de plusieurs petites occupations comme "les révisions pour mon partiel", "la vaisselle", "les fonctions holomorphes", "Rise of the Atlantis", etc.) en ce moment apprendre le Scheme et travailler sur mes tapis... Ce qui est heureux c'est que ses deux humeurs sont plus que compatibles, elles sont entrelacées ! Je découvre et démontre autant de tapissage que je programme de fonction.
En bref : ça va bien, je m'amuse avec des trucs de geeks !
Un petit morceaux de code pour avoir un aperçu des structures parenthèsales (qui n'ont d'égal que les structures sagittales de coaching de basket-bale (pour la rime))
(define (clock-wise-step (x y) a b) (cond ((and (= y 0) (not (= x 0))) ((- x 1) y)) ((and (= x 0) (not (= y b))) (x (+ y 1))) ((and (= y b) (not (= x a))) ((+ x 1) y)) ((and (= x a) (not (= y 0))) (x (- y 1))) (else (error "clock-wise-step" " le point n'est pas sur le rectangle"))))
Voila, en vrai on fait des passages à la ligne et des espacements de présentation, mais c'est plus typique comme ça !
"Faire des maths, c'est la seule façon socialement acceptable de se masturber en public." (Inconnu)
Send a message
Search for members