Rand Stats

French

zef:slavenskoj

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

Constantes / Constants

Fonctions mathématiques / Math Functions

Fonctions de chaînes / String Functions

Fonctions de listes/tableaux / List/Array Functions

Opérateurs en français / French Operators

Arithmétiques / Arithmetic

Comparaison / Comparison

Logiques / Logical

Chaînes / Strings

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 :

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