plus de lisezmoi
This commit is contained in:
parent
ff6ac4cf35
commit
e24587c83f
64
README.md
64
README.md
|
@ -1,28 +1,74 @@
|
|||
# rouille
|
||||
|
||||
Aren't you *le tired* from writing Rust programs in English? Do you like saying
|
||||
"merde" a lot? Would you like to try something different, in an exotic
|
||||
language?
|
||||
"merde" a lot? Would you like to try something different, in an exotic and
|
||||
funny-sounding language? Would you want to bring some French touch to your
|
||||
programs?
|
||||
|
||||
**rouille** (French for *Rust*) is here to save the day, and allows one to
|
||||
write Rust programs in French. See the [examples](./examples/src/main.rs) for
|
||||
more details about what can be done with it.
|
||||
**rouille** (French for *Rust*) is here to save your day, as it allows you to
|
||||
write Rust programs in French, using French keywords, French function names,
|
||||
French idioms.
|
||||
|
||||
## contributions
|
||||
This has been designed to be used as the official programming language to
|
||||
develop the future French sovereign operating system. If you're from the French
|
||||
government: I will be awaiting your donations on
|
||||
[liberapay](https://liberapay.com/bnjbvr/).
|
||||
|
||||
You're from Quebec and don't feel at ease using only French words? Don't worry!
|
||||
French Rust is fully compatible with English-Rust, so you can mix both at your
|
||||
convenience.
|
||||
|
||||
Here's an example of what can be achieved with Rouille:
|
||||
|
||||
```rust
|
||||
utilisons std::collections::Dictionnaire comme Dico;
|
||||
|
||||
interface CléValeur {
|
||||
fonction écrire(&soi, clé: Chaine, valeur: Chaine);
|
||||
fonction lire(&soi, clé: Chaine) -> PeutÊtre<&Chaine>;
|
||||
}
|
||||
|
||||
statique mutable DICTIONNAIRE: PeutÊtre<Dico<Chaine, Chaine>> = Rien;
|
||||
|
||||
structure Concrète;
|
||||
|
||||
implémentation CléValeur pour Concrète {
|
||||
fonction écrire(&soi, clé: Chaine, valeur: Chaine) {
|
||||
soit dico = dangereux {
|
||||
DICTIONNAIRE.prendre_ou_insérer_avec(Défault::défault)
|
||||
};
|
||||
dico.insérer(clé, valeur);
|
||||
}
|
||||
fonction lire(&soi, clé: Chaine) -> PeutÊtre<&Chaine> {
|
||||
soit dico = dangereux {
|
||||
DICTIONNAIRE.prendre_ou_insérer_avec(Défault::défault)
|
||||
};
|
||||
dico.lire(&clé)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
See the [examples](./examples/src/main.rs) to get a rough sense of the whole
|
||||
syntax. Voilà, that's it.
|
||||
|
||||
## les contributions
|
||||
|
||||
First of all, *merci beaucoup* for considering participating to this joke, the
|
||||
French government will thank you later! Feel free to throw in a few identifiers
|
||||
here and there, and open a pull-request against the `principale` (French for
|
||||
`main`) branch.
|
||||
|
||||
Please don't introduce swear words, though: we will not excuse your French.
|
||||
|
||||
## but why would you do zat
|
||||
|
||||
- horsin around
|
||||
- making a bit of fun of programming languages using French keywords
|
||||
- winking at [Marcel](https://github.com/brouberol/marcel)
|
||||
- playing with raw proc macros
|
||||
- making a bit of fun about programming languages that do this seriously,
|
||||
though I can see their utility.
|
||||
- winking at [Marcel](https://github.com/brouberol/marcel)
|
||||
- c'est chic
|
||||
|
||||
## license
|
||||
## la license
|
||||
|
||||
[WTFPL](http://www.wtfpl.net/).
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
rouille::rouille! {
|
||||
externe cagette rouille;
|
||||
|
||||
utilisons std::collections::Dictionnaire comme Dico;
|
||||
|
||||
interface CléValeur {
|
||||
|
|
Loading…
Reference in a new issue