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:
@@ -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)
|
||||||
|
Reference in New Issue
Block a user