
French: 
Salut, je suis Rusi
Dans une vie antérieure, un informaticien
Une vieille main à Lisp, Miranda, Gofer et
leur cousine moderne Haskell
Pour la durée de ce stage mais je serai votre
ami lambda
Commençons par un exemple classique de débutant
C'est python mais pourrait presque être n'importe
quelle langue
Un des premiers morceaux de code qui un débutant
apprend est comment permuter deux variables

English: 
Hi I am Rusi
In an earlier life a computer scientist
An old hand at Lisp, Miranda, gofer and their
modern cousin Haskell Also python
For the length of this course however, I'll
be your friend lambda
Lets start with a classical newbie example
This is python but could almost be any language
One of the first pieces of code that a newbie
learns is how to swap two variables

English: 
There are many ways of doing this
1 the standard way,
2 using an extra stack
3 clever use of xor
4.parallel hardware
And so on and so forth
And all these ways are the 'how'
Getting entangled in this
makes us lose track of the 'what'
Which can be written in python as simply as
x,y = y,x
One more little example
Look at these two alternative ways in python
to append two lists
They seem quite similar
Yet they are deeply different
After the plus nothing is changed
After the extend, x is different, its changed
We say that plus is functional code
Extend is imperative or object oriented

French: 
Il ya beaucoup de façons de le faire
1. la manière standard,
2. l'aide d'une pile supplémentaire
3. l'utilisation intelligente de XOR
4. matériel parallèle
Et ainsi de suite et ainsi de suite
Et tous ces moyens sont le «comment»
S'empêtrer dans tout cela
nous fait perdre la trace du «quoi»
Qui peut être écrit en python aussi simplement
que
x, y = y, x
Un autre petit exemple
Regardez ces deux alternatives en python pour
ajouter deux listes
Ils semblent assez similaires
Pourtant, ils sont profondément différent
Après le '+', rien n'est changé
Après la Extend, x est différent, il a changé
Nous disons que '+' est le code fonctionnel
Extend est impératif, ou «orienté objet»
Bien que ces deux exemples semblent trop trivial
ils portent une idée importante:
la différence paradigmatique entre la programmation
impérative et fonctionnelle
Remarque:
Pour être tout à fait correct

French: 
nous parlons du paradigme non la sémantique
qui est impératif, en tout cas pour "Assignment"
La programmation est une activité double
humeur
Parfois, nous devons jouer avec les idées
Parfois, avec les détails de la technologie
actuelle
Pour nous, le terrain de jeu pour des idées
sera Haskell
Et python sera la porte d'entrée de la technologie
actuelle
En particulier, nous ne serons pas concentrons
beaucoup sur le type avancé bidouille dans
Haskell
De même pour nous Python être le réalisateur
de la programmation fonctionnelle.
Nous allons voir comment remplacer longue,
laid, OO code par cute one-liners fonctionnel
Et si
Comme le chant d'harmonie
Notre cours s'écoulera
En deux voix
Jouer avec les idées de Haskell
Et le développement de code en python
Et juste au cas où vous pensez que la "programmation
fonctionnelle"

English: 
While these two examples seem too trivial
they carry an important idea:
the paradigm difference between imperative
and functional programming
Note:
To be strictly correct
we are talking of the paradigm not the semantics
which is imperative in any case for assignment
Programming is a dual natured activity
Sometimes we need to play with ideas
Sometimes to realize them with the nitty gritties of current
technology
For us the idea playground will be haskell
And python will be the gateway to current
technology
In particular we will not be concentrating
much on advanced type hackery and such in
Haskell
Likewise for us python being the realizer
of functional programming
we will see how to replace long ungly object
oriented code by cute functional one-liners
And so
Like harmony singing
Our course will flow
In two voices

French: 
apporte devant vos yeux, les images d'un monde
effrayant
Des types polymorphes monstrueux
Terrifiant fonctions d'ordre supérieur
Ce serpent de soi avaler mystérieux, le Y-Combinator
Et bien sûr, que le roi de incompréhensibilité
- monades
Ensuite, vous vous trompez
On retrouve le même
dans un bel univers de valeurs
Structures de données concrètes où les
constructeurs et destructeurs sont les mêmes
Les définitions de fonctions équationnels
Le filtrage par motif
L'addition de laquelle
en commençant par indentation
fait pour une beauté frappante programmes
Mais la beauté ne vient pas au détriment
de la richesse
Notre monde est riche de valeurs
Structures de données récursives

English: 
Playing with ideas in Haskell
And hacking code in python
And just in case you think 'functional programming'
brings before your eyes, images of a frightening
world
Of monstrous polymorphic types
Terrifying higher order functions
That mysterious self-swallowing serpent the
Y-combinator
And of course that king of incomprehensibility
-- monads
Then you are mistaken
We find the same
in a beautiful world of values
Concrete data structures where constructors
and destructors are the same
Equational function definitions
Pattern matching
The sum of which
starting with indentation
makes for strikingly beautiful programs
But beauty does not come at the cost of richness
Our value world is rich

French: 
Premières constructeurs de données de classe
Fonctions et combinateurs d'ordre supérieur
faire pour un riche sémantique propre
Et en dessous de tout ce
s'en rendre compte
est la machine de lambda-calcul
Qu'est-ce que le programmeur declarates
La machine imperates
C'est le thème de la formation
Pour nous,
La programmation est la danse entre cette
déclaration du programmeur
et la imperation de la machine

English: 
Recursive data structures
First class data constructors
Higher order functions and combinators
make for a rich clean semantics
And underneath all this
realizing it
is the lambda calculus machine
What the programmer declarates
The machine imperates
This is the theme of the course
For us
Programming is the dance between this declaration
of the programmer
and the imperation of the machine
