1
0
mirror of https://github.com/adambard/learnxinyminutes-docs.git synced 2025-08-07 15:26:45 +02:00

Second draft for french translation of Racket

This commit is contained in:
lkdjiin
2013-12-07 13:55:06 +01:00
parent e4b82f9415
commit 9221714ccc

View File

@@ -47,9 +47,9 @@ service]. Vous pouvez joindre le traducteur de ce document ici :
1/2 ; rationnel 1/2 ; rationnel
1+2i ; complexe 1+2i ; complexe
;; Une fonction s'écrit (f x y z ...) ;; Un appel de fonction s'écrit (f x y z ...)
;; où f est une fonction et x, y, z, ... sont des arguments. ;; où f est une fonction et x, y, z, ... sont des arguments.
;; Si vous voulez créer une liste de données litérales, utilisez ' pour ;; Si vous voulez créer une liste littérales, utilisez ' pour
;; empécher l'évaluation de la liste. ;; empécher l'évaluation de la liste.
'(+ 1 2) ; => (+ 1 2) '(+ 1 2) ; => (+ 1 2)
;; Et maintenant, un peu d'arithmétique ;; Et maintenant, un peu d'arithmétique
@@ -65,8 +65,8 @@ service]. Vous pouvez joindre le traducteur de ce document ici :
(+ 1+2i 2-3i) ; => 3-1i (+ 1+2i 2-3i) ; => 3-1i
;;; Booléens ;;; Booléens
#t ; for true #t ; pour vrai
#f ; for false -- any value other than #f is true #f ; pour faux -- Toute autre valeur que #f est vraie
(not #t) ; => #f (not #t) ; => #f
(and 0 #f (error "doesn't get here")) ; => #f (and 0 #f (error "doesn't get here")) ; => #f
(or #f 0 (error "doesn't get here")) ; => 0 (or #f 0 (error "doesn't get here")) ; => 0
@@ -79,8 +79,8 @@ service]. Vous pouvez joindre le traducteur de ce document ici :
;;; Une chaîne de caractères est un tableau de caractères de longueur ;;; Une chaîne de caractères est un tableau de caractères de longueur
;;; fixe. ;;; fixe.
"Hello, world!" "Hello, world!"
"Benjamin \"Bugsy\" Siegel" ; le backslash est le caractère d'échappement "Benjamin \"Bugsy\" Siegel" ; Le backslash est le caractère d'échappement
"Foo\tbar\41\x21\u0021\a\r\n" ; sont inclus les échappements de type C "Foo\tbar\41\x21\u0021\a\r\n" ; Sont inclus les échappements de type C
; et unicode ; et unicode
"λx:(μα.α→α).xx" ; une chaîne peut inclure de l'unicode "λx:(μα.α→α).xx" ; une chaîne peut inclure de l'unicode
@@ -100,7 +100,6 @@ service]. Vous pouvez joindre le traducteur de ce document ici :
;; 2. Variables ;; 2. Variables
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Vous pouvez créer une variable à l'aide de define ;; Vous pouvez créer une variable à l'aide de define
;; a variable name can use any character except: ()[]{}",'`;#|\
;; Une variable peut contenir n'importe quel caractères, à l'exception ;; Une variable peut contenir n'importe quel caractères, à l'exception
;; de : ()[]{}",'`;#|\ ;; de : ()[]{}",'`;#|\
(define some-var 5) (define some-var 5)
@@ -113,7 +112,7 @@ some-var ; => 5
;; Accéder à une variable non-initialisée provoque une exception ;; Accéder à une variable non-initialisée provoque une exception
; x ; => x: indéfini ... ; x ; => x: indéfini ...
;; Attachement local : `me` est attaché à "Bob" seulement à l'intérieur ;; Déclaration locale : `me` est attaché à "Bob" seulement à l'intérieur
;; de (let ...) ;; de (let ...)
(let ([me "Bob"]) (let ([me "Bob"])
"Alice" "Alice"
@@ -131,9 +130,9 @@ my-pet ; => #<dog>
(dog? my-pet) ; => #t (dog? my-pet) ; => #t
(dog-name my-pet) ; => "lassie" (dog-name my-pet) ; => "lassie"
;;; Paires (non-mutable) ;;; Paires (non mutable)
;; `cons` construit une paire, `car` et `cdr` extraient respectivement les ;; `cons` construit une paire, `car` et `cdr` extraient respectivement le
;; premiers et seconds éléments. ;; premier et le second élément.
(cons 1 2) ; => '(1 . 2) (cons 1 2) ; => '(1 . 2)
(car (cons 1 2)) ; => 1 (car (cons 1 2)) ; => 1
(cdr (cons 1 2)) ; => 2 (cdr (cons 1 2)) ; => 2
@@ -141,22 +140,22 @@ my-pet ; => #<dog>
;;; Listes ;;; Listes
;; Les listes en Racket sont des structures de données de type *linked-list*, ;; Les listes en Racket sont des structures de données de type *linked-list*,
;; produites avec des paires assemblées avec `cons` et terminée avec `null` ;; produites avec des paires assemblées avec `cons` et terminée par `null`
;; (ou '()). ;; (ou '()).
(cons 1 (cons 2 (cons 3 null))) ; => '(1 2 3) (cons 1 (cons 2 (cons 3 null))) ; => '(1 2 3)
;; `list` est un constructeur variadique plus commode à utiliser ;; `list` est un constructeur variadique plus commode à utiliser
(list 1 2 3) ; => '(1 2 3) (list 1 2 3) ; => '(1 2 3)
;; et un guillemet simple peut aussi être utilisé pour une liste litérale ;; et un guillemet simple peut aussi être utilisé pour une liste littérale
'(1 2 3) ; => '(1 2 3) '(1 2 3) ; => '(1 2 3)
;; On peut toujours utiliser `cons` pour ajouter un élément au début ;; On peut toujours utiliser `cons` pour ajouter un élément au début
;; d'une liste ;; d'une liste
(cons 4 '(1 2 3)) ; => '(4 1 2 3) (cons 4 '(1 2 3)) ; => '(4 1 2 3)
;; Utilisez `append` pour additionner des listes entre elles ;; Utilisez `append` pour ajouter une liste à une autre
(append '(1 2) '(3 4)) ; => '(1 2 3 4) (append '(1 2) '(3 4)) ; => '(1 2 3 4)
;; Les listes sont un type très basique, il y a donc *beaucoup* de ;; Une liste est un type très basique, il y a donc *beaucoup* de
;; fonctionnalités qui leur sont dédiées, quelques exemples : ;; fonctionnalités qui leur sont dédiées, quelques exemples :
(map add1 '(1 2 3)) ; => '(2 3 4) (map add1 '(1 2 3)) ; => '(2 3 4)
(map + '(1 2 3) '(10 20 30)) ; => '(11 22 33) (map + '(1 2 3) '(10 20 30)) ; => '(11 22 33)
@@ -175,17 +174,17 @@ my-pet ; => #<dog>
;;; Sets ;;; Sets
;; Créew un set à partir d'une liste ;; Créez un set à partir d'une liste
(list->set '(1 2 3 1 2 3 3 2 1 3 2 1)) ; => (set 1 2 3) (list->set '(1 2 3 1 2 3 3 2 1 3 2 1)) ; => (set 1 2 3)
;; Ajoutez un membre avec `set-add` ;; Ajoutez un membre avec `set-add`
;; (Fonctionnel: renvoit le set étendu, plutôt que de muter le set en entrée) ;; (Fonctionnel: renvoit le set étendu, plutôt que de muter le set en entrée)
(set-add (set 1 2 3) 4) ; => (set 1 2 3 4) (set-add (set 1 2 3) 4) ; => (set 1 2 3 4)
;; Retirer un membre avec `set-remove` ;; Retirez un membre avec `set-remove`
(set-remove (set 1 2 3) 1) ; => (set 2 3) (set-remove (set 1 2 3) 1) ; => (set 2 3)
;; Tester l'existence d'un membre avec `set-member?` ;; Testez l'existence d'un membre avec `set-member?`
(set-member? (set 1 2 3) 1) ; => #t (set-member? (set 1 2 3) 1) ; => #t
(set-member? (set 1 2 3) 4) ; => #f (set-member? (set 1 2 3) 4) ; => #f
@@ -219,9 +218,8 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- no `d'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Utilisez `lambda` pour créer des fonctions. ;; Utilisez `lambda` pour créer des fonctions.
;; Une fonction renvoit toujours la valeur de sa dernière expression. ;; Une fonction renvoie toujours la valeur de sa dernière expression.
(lambda () "Hello World") ; => #<procedure> (lambda () "Hello World") ; => #<procedure>
;; Can also use a unicode `λ'
;; On peut aussi utiliser le caractère unicode `λ' ;; On peut aussi utiliser le caractère unicode `λ'
(λ () "Hello World") ; => même fonction (λ () "Hello World") ; => même fonction
@@ -235,10 +233,11 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- no `d'
(hello-world) ; => "Hello World" (hello-world) ; => "Hello World"
;; Vous pouvez raccourcir ceci en utilisant le sucre syntaxique pour la ;; Vous pouvez raccourcir ceci en utilisant le sucre syntaxique pour la
;; définition des fonctions : ;; définition de fonction :
(define (hello-world2) "Hello World") (define (hello-world2) "Hello World")
;; Entre les () après lambda, vous avez la liste des arguments de la fonction ;; Entre les () après lambda, vous déclarez la liste des arguments de la
;; fonction
(define hello (define hello
(lambda (name) (lambda (name)
(string-append "Hello " name))) (string-append "Hello " name)))
@@ -306,7 +305,7 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- no `d'
(equal? (list 'a 'b) (list 'b 'a)) ; => #f (equal? (list 'a 'b) (list 'b 'a)) ; => #f
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 5. Contrôle du flot ;; 5. Structures de contrôle
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Conditions ;;; Conditions
@@ -448,7 +447,7 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- no `d'
;; 6. Mutabilité ;; 6. Mutabilité
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Util `set!` pour réassigner une valeur à une variable existante ;; Utilisez `set!` pour réassigner une valeur à une variable existante
(define n 5) (define n 5)
(set! n (add1 n)) (set! n (add1 n))
n ; => 6 n ; => 6
@@ -503,7 +502,7 @@ vec ; => #(1 2 3 4)
(printf fmt (make-string n ch)) (printf fmt (make-string n ch))
(newline))) (newline)))
;; Utilisez `require` pour importer les fonctions fournies par le ;; Utilisez `require` pour importer les fonctions fournies par un
;; module (provide) ;; module (provide)
(require 'cake) ; le ' est pour un sous-module local (require 'cake) ; le ' est pour un sous-module local
(print-cake 3) (print-cake 3)
@@ -537,9 +536,8 @@ vec ; => #(1 2 3 4)
(send charlie grow 6) (send charlie grow 6)
(send charlie get-size) ; => 16 (send charlie get-size) ; => 16
;; `fish%' is a plain "first class" value, which can get us mixins
;; `fish%` est une simple valeur de «première classe», ce qui va permettre ;; `fish%` est une simple valeur de «première classe», ce qui va permettre
;; les mélanges (*mixins*) ;; la composition (*mixins*)
(define (add-color c%) (define (add-color c%)
(class c% (class c%
(init color) (init color)