README

French - Module français pour Raku

This module provides French language support for Raku, allowing you to write Raku programs using French keywords, functions, and operators. It includes translations for over 200 built-in functions and introduces French-specific operators for a more natural programming experience in French.

Installation

zef install French

Ou depuis le répertoire source / Or from source directory:

zef install .

Utilisation de base / Basic Usage

use French;

# Afficher en français
dis "Bonjour le monde !";

# Variables et types
my $nom = demander "Comment vous appelez-vous ? ";
dis "Bonjour, $nom !";

# Nombres et mathématiques
my @nombres = 1..10;
dis "La somme est : ", somme(@nombres);
dis "La moyenne est : ", moyenne(@nombres);

# Opérateurs en français
my $résultat = 5 plus 3 fois 2;
dis "5 plus 3 fois 2 = $résultat";

Caractéristiques / Features

Entrée/Sortie de base / Basic I/O

  • dis / dire - afficher avec nouvelle ligne (say)

  • imprimer - afficher sans nouvelle ligne (print)

  • demander - demander une entrée utilisateur (prompt)

  • lire - lire une ligne (get)

  • avertir - afficher un avertissement (warn)

Constantes / Constants

  • vrai - True

  • faux - False

  • nul - Nil

  • infini - Infinity

  • π / pi - Pi

  • e - Nombre d'Euler

Fonctions mathématiques / Math Functions

  • somme(@nombres) - somme des éléments

  • produit(@nombres) - produit des éléments

  • moyenne(@nombres) - moyenne

  • minimum(@nombres) - valeur minimale

  • maximum(@nombres) - valeur maximale

  • racine_carrée($n) - racine carrée

  • puissance($x, $y) - x élevé à la puissance y

  • sinus($x), cosinus($x), tangente($x) - fonctions trigonométriques

  • arrondir($x), plafond($x), plancher($x) - arrondissement

Fonctions de chaînes / String Functions

  • majuscules($s) - convertir en majuscules

  • minuscules($s) - convertir en minuscules

  • élaguer($s) - supprimer les espaces blancs

  • longueur($s) - longueur de la chaîne

  • contient($s, $sous) - vérifier si contient une sous-chaîne

  • remplacer($s, $de, $à) - remplacer la première occurrence

  • diviser($s, $sep) - diviser la chaîne

  • joindre(@parties, $sep) - joindre les éléments

Fonctions de listes/tableaux / List/Array Functions

  • taille_liste(@arr) - nombre d'éléments

  • premier(@arr) - premier élément

  • dernier(@arr) - dernier élément

  • trier(@arr) - trier les éléments

  • inverser_liste(@arr) - inverser l'ordre

  • mapper(&fonction, @arr) - appliquer une fonction à chaque élément

  • filtrer(&condition, @arr) - filtrer les éléments

  • uniques(@arr) - éléments uniques

Opérateurs en français / French Operators

Arithmétiques / Arithmetic

  • plus - addition (+)

  • moins - soustraction (-)

  • fois - multiplication (*)

  • divisé - division (/)

  • modulo - reste (%)

  • puissance - puissance (**)

Comparaison / Comparison

  • égal - égal à (==)

  • différent - différent de (!=)

  • supérieur - supérieur à (>)

  • inférieur - inférieur à (<)

  • supérieur_égal - supérieur ou égal (>=)

  • inférieur_égal - inférieur ou égal (<=)

Logiques / Logical

  • et - et logique (&&)

  • ou - ou logique (||)

  • non - négation (!)

Chaînes / Strings

  • concaténer - concaténation (~)

  • répéter_chaîne - répéter une chaîne (x)

Gestion des fichiers / File Handling

# Lire un fichier
my $fichier = ouvrir("données.txt", :r);
my $contenu = lire_fichier($fichier);
fermer($fichier);

# Écrire un fichier
$fichier = ouvrir("sortie.txt", :w);
écrire_ligne($fichier, "Bonjour depuis Raku en français");
fermer($fichier);

# Vérifier l'existence
if fichier_existe("données.txt") {
    dis "Le fichier existe";
}

Date et heure / Date and Time

dis "Maintenant : ", maintenant();
dis "Date : ", date();
dis "Heure : ", heure();
dormir(2);  # Pause de 2 secondes

Nombres aléatoires / Random Numbers

dis "Nombre aléatoire : ", aléatoire();
dis "Entier 1-100 : ", entier_aléatoire(100) + 1;
my @options = <rouge vert bleu>;
dis "Couleur aléatoire : ", choisir_aléatoire(@options);

Programmation fonctionnelle / Functional Programming

# Composition de fonctions
my @données = 1..20;
my @résultat = @données
    .&filtrer(-> $x { est_pair($x) })
    .&mapper(-> $x { $x fois 2 })
    .&filtrer(-> $x { $x supérieur 10 });

# Réduction
my $somme_totale = réduire(-> $a, $b { $a plus $b }, @nombres);

Gestion des erreurs / Error Handling

my $résultat = essayer {
    # Code qui peut échouer
    1 divisé 0
};

capturer(
    { mourir "Erreur !" },
    -> $erreur { dis "Capturé : $erreur" }
);

# Exécution sûre avec valeur par défaut
my $valeur = sûrement({ 1 divisé 0 }, 42);

Fonctionnalités avancées / Advanced Features

Promesses et concurrence / Promises and Concurrency

my $promesse = promesse { dormir(2); 42 };
my $valeur = attendre($promesse);
dis "Résultat : $valeur";

Traitement parallèle / Parallel Processing

my @grandes_données = 1..1000;
my @résultats = parallèle(@grandes_données, -> $x { $x ** 2 });

Évaluation paresseuse / Lazy Evaluation

my @fibonacci = 1, 1, * plus * ... *;
dis "10 premiers Fibonacci : ", @fibonacci[^10];

Exemples complets / Complete Examples

Calculatrice simple / Simple Calculator

use French;

dis "=== Calculatrice en Français ===";

my $a = nombre(demander "Premier nombre : ");
my $opération = demander "Opération (+, -, *, /) : ";
my $b = nombre(demander "Deuxième nombre : ");

my $résultat = étant_donné $opération {
    quand '+' { $a plus $b }
    quand '-' { $a moins $b }
    quand '*' { $a fois $b }
    quand '/' { $a divisé $b }
};

dis "Résultat : $résultat";

Analyse de texte / Text Analysis

use French;

my $texte = "Ceci est un exemple de texte en français pour analyser";
my @mots_texte = mots($texte);

dis "Texte : $texte";
dis "Nombre de mots : ", compter(@mots_texte);
dis "Mots uniques : ", compter(uniques(@mots_texte));
dis "Mot le plus long : ", maximum(@mots_texte.&mapper(-> $m { longueur($m) }));

Limitations

En raison des limitations actuelles de Raku (issue #2404), ce module ne peut pas fournir :

  • Structures de contrôle en tant que mots-clés (si, tant_que, etc. doivent être utilisés comme fonctions)

  • Déclaration de variables avec des mots-clés en français

  • Modification complète de la syntaxe

Cependant, toutes les fonctions et opérateurs fonctionnent correctement et permettent de programmer efficacement en français.

Contribuer / Contributing

Les contributions sont les bienvenues. Veuillez :

  1. Forker le dépôt

  2. Créer une branche pour votre fonctionnalité

  3. Envoyer une pull request

Licence / License

Artistic License 2.0

Auteur / Author

Danslav Slavenskoj

French v0.0.2

French language programming for Raku - Support de la langue française pour Raku

Authors

  • Danslav Slavenskoj

License

Artistic-2.0

Dependencies

Test Dependencies

Provides

  • Français
  • French

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.