Aren't you pilin lape from writing Rust programs in English? Do you like saying "pakala a" a lot? Would you like to try something different, in a super simplified language? Would you want to bring some Toki Pona touch to your programs?
jaki kiwen (Toki Pona for Rust) is here to save your day, as it allows you to write Rust programs in Toki Pona, using Toki Pona keywords, Toki Pona function names, Toki Pona idioms.
This has been designed to be used as the official programming language for ma pona pi toki pona.
You're a jan sin and don't feel at ease using only Toki Pona words?
Don't worry! Toki Pona 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 jaki kiwen:
jaki_kiwen::jaki_kiwen! {
weka poki_suli jaki_kiwen;
o_kepeken std::collections::LipuNimi sama LipuN;
nasin_suli NimiEnKon {
nasin o_pana(&mi, nimi: Linja, kon: Linja);
nasin o_alasa(&mi, nimi: Linja) -> IjoPini<IjoKen<&Linja>, Linja>;
}
kule_awen ken_ante LIPU_NIMI: IjoKen<LipuN<Linja, Linja>> = IjoAla;
tomo IjoSijelo;
nasin_lon NimiEnKon lon_ale IjoSijelo {
nasin o_pana(&mi, nimi: Linja, kon: Linja) {
o_lon_e lipu = ike_a {
LIPU_NIMI.o_wile_anu_pana_kepeken(NasinOpen::nasin_open)
};
lipu.o_pana_lon_insa_e(nimi, kon);
}
nasin o_alasa(&mi, nimi: Linja) -> IjoPini<IjoKen<&Linja>, Linja> {
lon_la o_lon_e IjoLon(lipu) = ike_a { LIPU_NIMI.o_kama_ijo_tan() } {
Pona(lipu.o_wile_tan(&nimi))
}
ala_la {
Ike("lipu li ala a!".o_ante_tawa())
}
}
}
}
See the examples to get a rough sense of the whole syntax. o lukin a, that's it.
First of all, sina pona mute for considering participating to this joke,
Sonja Lang will thank you later! Feel free to throw in a few identifiers
here and there, and open a pull request against the suli-nanpa-wan
(Toki
Pona for main
) branch.
Please don't introduce any unpa, though: we will not excuse your Toki Pona.
- horsin around
- playing with raw proc macros
- making a bit of fun about programming languages that do this seriously, though I can see their utility.
- ni li sama nimi kijetesantakalu
- French: rouille
- Dutch: roest
- German: rost
- Polish: rdza
- Italian: ruggine
- Russian: Ржавый
- Esperanto: rustteksto
- Hindi: zung
- Hungarian: rozsda
- Chinese: xiu (锈)
- Spanish: rustico
- Korean: Nok (녹)
- Finnish: ruoste
- Arabic: sada
- Turkish: pas
- Vietnamese: gỉ
- Japanese: sabi (錆)
- Danish: rust?
- Marathi: gan̄ja
- Romanian: rugină
- Czech: rez
- Ukrainian: irzha
- Bulgarian: ryzhda
- Slovak: hrdza
- Catalan: rovell
- Corsican: rughjina
- Indonesian: karat
- Lithuanian: rūdys
- Greek: skouriasmeno
- Thai: sanim (สนิม)
- Swiss: roeschti
- Swedish: rost
- Croatian: hrđa
- Persian: zangar (زنگار)
- Malagasy: arafesina
- Latin: ferrugo
- Norwegian: korrosjon
- Estonian: rooste
- All of the above: unirust
WTFPL. A translation to Toki Pona is provided at LICENSE-tok.txt
.