From ce0c0a2853dee805350a0423dae070bff0098eb4 Mon Sep 17 00:00:00 2001
From: Hughes Perreault <perreault.hughes@gmail.com>
Date: Wed, 11 Nov 2015 22:50:15 -0500
Subject: [hy/fr]

A translation of Hy in french.
---
 fr-fr/hy-fr.html.markdown | 180 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 180 insertions(+)
 create mode 100644 fr-fr/hy-fr.html.markdown

(limited to 'fr-fr/hy-fr.html.markdown')

diff --git a/fr-fr/hy-fr.html.markdown b/fr-fr/hy-fr.html.markdown
new file mode 100644
index 00000000..ccd397cf
--- /dev/null
+++ b/fr-fr/hy-fr.html.markdown
@@ -0,0 +1,180 @@
+---
+language: hy
+filename: learnhy.hy
+contributors:
+    - ["Abhishek L", "http://twitter.com/abhishekl"]
+translators:
+  - ["Hughes Perreault", "https://github.com/hperreault"]
+lang: fr-fr
+---
+
+Hy est un dialecte du lisp bâti par dessus python. Il fonctionne en
+convertissant le code hy en un arbre de syntaxe abstraite de python (ast).
+Ceci permet à hy d'appeler du code python et à python d'appeler du code hy.
+
+Ce tutoriel fonctionne pour hy > 0.9.12
+
+```clojure
+;; Ceci est une introduction facile à hy, pour un tutoriel rapide aller à
+;; http://try-hy.appspot.com
+;;
+; Les commentaires se font avec des points-virgules, comme les autres LISPS
+
+;; les s-expression de bases
+; Les programmes Lisp sont fait d'expressions symboliques ou sexps qui
+; ressemble à
+(some-function args)
+; maintenant le quintessentiel hello world
+(print "hello world")
+
+;; les types de données simples
+; Tous les types de données simples sont exactement similaires à leurs
+; homologues de python
+42 ; => 42
+3.14 ; => 3.14
+True ; => True
+4+10j ; => (4+10j) un nombre complexe
+
+; Commençons par un peu d'arithmétique très simple
+(+ 4 1) ;=> 5
+; l'opérateur est appliqué à tous les arguments, comme les autres lisps
+(+ 4 1 2 3) ;=> 10
+(- 2 1) ;=> 1
+(* 4 2) ;=> 8
+(/ 4 1) ;=> 4
+(% 4 2) ;=> 0 l'opérateur modulo
+; l'opérateur d'élévation à la puissance est représenté par ** comme en python
+(** 3 2) ;=> 9
+; les expressions imbriquées vont se comporter comme on s'y attend
+(+ 2 (* 4 2)) ;=> 10
+; aussi, les opérateurs logiques and or not et equal to etc. vont se comporter
+; comme on s'y attend
+(= 5 4) ;=> False
+(not (= 5 4)) ;=> True
+
+;; variables
+; les variables sont déclarées en utilisant setv, les noms de variables
+; peuvent utiliser UTF-8 à l'exception de ()[]{}",'`;#|
+(setv a 42)
+(setv π 3.14159)
+(def *foo* 42)
+;; d'autres types de données conteneur
+; les chaînes, les listes, les tuples et dicts
+; ce sont exactement les mêmes que les types de conteneurs de python
+"hello world" ;=> "hello world"
+; les opérations sur les chaînes fonctionnent comme en python
+(+ "hello " "world") ;=> "hello world"
+; les listes sont créés en utilisant [], l'indexation commence à 0
+(setv mylist [1 2 3 4])
+; les tuples sont des structures de données immuables
+(setv mytuple (, 1 2))
+; les dictionnaires sont des paires clé-valeur
+(setv dict1 {"key1" 42 "key2" 21})
+; :nam peut être utilisé pour définir des mots clés dans hy qui peuvent être
+;  utilisées comme clés
+(setv dict2 {:key1 41 :key2 20})
+; utilisez `get' pour obtenir l'élément à l'index / clé
+(get mylist 1) ;=> 2
+(get dict1 "key1") ;=> 42
+; Alternativement, si des mots clés ont été utilisés, l'élément peut être
+; obtenu directement
+(:key1 dict2) ;=> 41
+
+;; fonctions et autres constructions de programme
+; les fonctions sont définies en utilisant defn, la dernière sexp est renvoyé par défaut
+(defn greet [name]
+  "A simple greeting" ; une docstring optionnelle
+  (print "hello " name))
+
+(greet "bilbo") ;=> "hello bilbo"
+
+; les fonctions peuvent prendre des arguments optionnels ainsi que des
+; arguments sous forme de mots clés
+(defn foolists [arg1 &optional [arg2 2]]
+  [arg1 arg2])
+
+(foolists 3) ;=> [3 2]
+(foolists 10 3) ;=> [10 3]
+
+; les fonctions anonymes sont créés en utilisant `fn' ou `lambda'
+; qui sont semblable à `defn '
+(map (fn [x] (* x x)) [1 2 3 4]) ;=> [1 4 9 16]
+
+;; Opérations sur les séquences
+; hy a des utilitaires pré-construit pour les opérations sur les séquences etc.
+; récupérez le premier élément en utilisant  `first' ou `car'
+(setv mylist [1 2 3 4])
+(setv mydict {"a" 1 "b" 2})
+(first mylist) ;=> 1
+
+; découpez les listes en utilisant slice
+(slice mylist 1 3) ;=> [2 3]
+
+; obtenez les éléments d'une liste ou dict en utilisant `get'
+(get mylist 1) ;=> 2
+(get mydict "b") ;=> 2
+; l'indexation des listes commence à 0 comme en python
+; assoc peut définir les éléments à clés/index
+(assoc mylist 2 10) ; makes mylist [1 2 10 4]
+(assoc mydict "c" 3) ; makes mydict {"a" 1 "b" 2 "c" 3}
+; il ya tout un tas d'autres fonctions de base qui rend le travail avec
+; les séquences amusant
+
+;; les importations fonctionnent comme en pyhtonn
+(import datetime)
+(import [functools [partial reduce]]) ; importe fun1 et fun2 de module1
+(import [matplotlib.pyplot :as plt]) ; faire une importation foo comme bar
+; toutes les méthodes pré-construites de python sont accessibles à partir de hy
+; a.foo(arg) est appelé (.foo un arg)
+(.split (.strip "hello world  ")) ;=> ["hello" "world"]
+
+;; Conditionelles
+; (if condition (body-if-true) (body-if-false)
+(if (= passcode "moria")
+  (print "welcome")
+  (print "Speak friend, and Enter!"))
+
+; imbriquez plusieurs if else if avec le mot clé cond
+(cond
+ [(= someval 42)
+  (print "Life, universe and everything else!")]
+ [(> someval 42)
+  (print "val too large")]
+ [(< someval 42)
+  (print "val too small")])
+
+; groupez les expressions avec do, ceux-ci seront executé séquentiellemnt
+; les expressions comme defn ont un do implicite
+(do
+ (setv someval 10)
+ (print "someval is set to " someval)) ;=> 10
+
+; créer une liaison lexicale avec `let', toutes les variables déclarées
+; comme cela ont une portée locale
+(let [[nemesis {"superman" "lex luther"
+                "sherlock" "moriarty"
+                "seinfeld" "newman"}]]
+  (for [(, h v) (.items nemesis)]
+	(print (.format "{0}'s nemesis was {1}" h v))))
+
+;; classes
+; les classes sont définies comme ceci
+(defclass Wizard [object]
+  [[--init-- (fn [self spell]
+             (setv self.spell spell) ; init the spell attr
+             None)]
+   [get-spell (fn [self]
+              self.spell)]])
+
+;; allez voir hylang.org
+```
+
+### Lectures complémentaires
+
+Ce tutoriel est juste une simple introduction à hy/lisp/python.
+
+La documentation de HY: [http://hy.readthedocs.org](http://hy.readthedocs.org)
+
+Le repo GitHub de HY: [http://github.com/hylang/hy](http://github.com/hylang/hy)
+
+Sur freenode irc #hy, twitter hashtag #hylang
-- 
cgit v1.2.3


From 5aceaa8c3469998b43642fc7e5f5251466376eda Mon Sep 17 00:00:00 2001
From: Hughes Perreault <perreault.hughes@gmail.com>
Date: Thu, 12 Nov 2015 12:11:40 -0500
Subject: Add "-fr" before filename extansion, Replace "facile" with "simple"

---
 fr-fr/hy-fr.html.markdown | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'fr-fr/hy-fr.html.markdown')

diff --git a/fr-fr/hy-fr.html.markdown b/fr-fr/hy-fr.html.markdown
index ccd397cf..07007061 100644
--- a/fr-fr/hy-fr.html.markdown
+++ b/fr-fr/hy-fr.html.markdown
@@ -1,6 +1,6 @@
 ---
 language: hy
-filename: learnhy.hy
+filename: learnhy-fr.hy
 contributors:
     - ["Abhishek L", "http://twitter.com/abhishekl"]
 translators:
@@ -15,7 +15,7 @@ Ceci permet à hy d'appeler du code python et à python d'appeler du code hy.
 Ce tutoriel fonctionne pour hy > 0.9.12
 
 ```clojure
-;; Ceci est une introduction facile à hy, pour un tutoriel rapide aller à
+;; Ceci est une introduction simple à hy, pour un tutoriel rapide aller à
 ;; http://try-hy.appspot.com
 ;;
 ; Les commentaires se font avec des points-virgules, comme les autres LISPS
-- 
cgit v1.2.3


From 3b59da1f3d055b5fd9f0804de2142df90c7b762c Mon Sep 17 00:00:00 2001
From: Hughes Perreault <perreault.hughes@gmail.com>
Date: Thu, 12 Nov 2015 15:40:53 -0500
Subject: =?UTF-8?q?UTF-8=20->=20l'UTF-8,=20donn=C3=A9es=20conteneur=20->?=
 =?UTF-8?q?=20conteneurs?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 fr-fr/hy-fr.html.markdown | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'fr-fr/hy-fr.html.markdown')

diff --git a/fr-fr/hy-fr.html.markdown b/fr-fr/hy-fr.html.markdown
index 07007061..841179f5 100644
--- a/fr-fr/hy-fr.html.markdown
+++ b/fr-fr/hy-fr.html.markdown
@@ -54,11 +54,11 @@ True ; => True
 
 ;; variables
 ; les variables sont déclarées en utilisant setv, les noms de variables
-; peuvent utiliser UTF-8 à l'exception de ()[]{}",'`;#|
+; peuvent utiliser l'UTF-8 à l'exception de ()[]{}",'`;#|
 (setv a 42)
 (setv π 3.14159)
 (def *foo* 42)
-;; d'autres types de données conteneur
+;; d'autres types de conteneurs
 ; les chaînes, les listes, les tuples et dicts
 ; ce sont exactement les mêmes que les types de conteneurs de python
 "hello world" ;=> "hello world"
-- 
cgit v1.2.3


From 2c33662024b3b2c9975c184d9dfb5f8f8ddd02fc Mon Sep 17 00:00:00 2001
From: Hughes Perreault <perreault.hughes@gmail.com>
Date: Fri, 13 Nov 2015 11:15:58 -0500
Subject: =?UTF-8?q?nam=20->=20nom,=20pr=C3=A9-construit=20->=20natif,=20un?=
 =?UTF-8?q?=20->=20a?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 fr-fr/hy-fr.html.markdown | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'fr-fr/hy-fr.html.markdown')

diff --git a/fr-fr/hy-fr.html.markdown b/fr-fr/hy-fr.html.markdown
index 841179f5..5220fb65 100644
--- a/fr-fr/hy-fr.html.markdown
+++ b/fr-fr/hy-fr.html.markdown
@@ -70,7 +70,7 @@ True ; => True
 (setv mytuple (, 1 2))
 ; les dictionnaires sont des paires clé-valeur
 (setv dict1 {"key1" 42 "key2" 21})
-; :nam peut être utilisé pour définir des mots clés dans hy qui peuvent être
+; :nom peut être utilisé pour définir des mots clés dans hy qui peuvent être
 ;  utilisées comme clés
 (setv dict2 {:key1 41 :key2 20})
 ; utilisez `get' pour obtenir l'élément à l'index / clé
@@ -101,7 +101,7 @@ True ; => True
 (map (fn [x] (* x x)) [1 2 3 4]) ;=> [1 4 9 16]
 
 ;; Opérations sur les séquences
-; hy a des utilitaires pré-construit pour les opérations sur les séquences etc.
+; hy a des utilitaires natifs pour les opérations sur les séquences etc.
 ; récupérez le premier élément en utilisant  `first' ou `car'
 (setv mylist [1 2 3 4])
 (setv mydict {"a" 1 "b" 2})
@@ -124,8 +124,8 @@ True ; => True
 (import datetime)
 (import [functools [partial reduce]]) ; importe fun1 et fun2 de module1
 (import [matplotlib.pyplot :as plt]) ; faire une importation foo comme bar
-; toutes les méthodes pré-construites de python sont accessibles à partir de hy
-; a.foo(arg) est appelé (.foo un arg)
+; toutes les méthodes natives de python sont accessibles à partir de hy
+; a.foo(arg) est appelé (.foo a arg)
 (.split (.strip "hello world  ")) ;=> ["hello" "world"]
 
 ;; Conditionelles
-- 
cgit v1.2.3


From e3de8870ca586cd0f084f00cc96ea540cf022638 Mon Sep 17 00:00:00 2001
From: Hughes Perreault <perreault.hughes@gmail.com>
Date: Fri, 13 Nov 2015 11:48:48 -0500
Subject: ressemble -> ressemblent

---
 fr-fr/hy-fr.html.markdown | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'fr-fr/hy-fr.html.markdown')

diff --git a/fr-fr/hy-fr.html.markdown b/fr-fr/hy-fr.html.markdown
index 5220fb65..bd7c6839 100644
--- a/fr-fr/hy-fr.html.markdown
+++ b/fr-fr/hy-fr.html.markdown
@@ -22,7 +22,7 @@ Ce tutoriel fonctionne pour hy > 0.9.12
 
 ;; les s-expression de bases
 ; Les programmes Lisp sont fait d'expressions symboliques ou sexps qui
-; ressemble à
+; ressemblent à
 (some-function args)
 ; maintenant le quintessentiel hello world
 (print "hello world")
-- 
cgit v1.2.3