zo iNiTiATiON SPEECHES
S01E12 2024-08-09

S01E12 — 09-08-2024.

Cette pétaxe de syntaxe.

jour 12.

Je vais envie de tout casser aujourd’hui, de balancer mon ordinateur par-dessus le balcon, de récupérer les morceaux et les jeter dans le premier broyeur que je trouverai. Voilà mon quaalude du jour.

Bon, je suis parvenu à réparer mon souci de la veille en revenant sur mes pas. Par contre, en faisant des tests de syntaxe, j’ai trouvé un petit sucre syntaxique stylé pour les one liners et lesgolfeurs du code. Ce qui m’a lancé dans une quête impossible dans laquelle je suis encore coincé dans la spirale. Pu-taing…

L’idée est qu’un bloc d’instructions en zo équivaut à {..}les .. est une abbréviation pour l’ensemble des instructions contenues à l’intérieur du bloc. Néanmoins, en Javascript, dans le cas d’une fonction, le sucre possible est function foo() {..} ou via une fonction fléchée () => {..}. Cependant, une exception existe pour la fonction fléchée qui est de pouvoir omettre le bloc {..}. Ce qui donne : () => ...

En ayant ça en tête, c’est une syntaxe que je voulais avoir pour les closures. D’abord, du sucre qui prend en compte les blocs fn () {..} puis du sucre sans les blocs fn () -> ... Jusqu’ici tout va bien. Sauf que je me suis dit que la logique serait plus consistante si de base tout bloc puisse être défini comme tel à l’exception d’une déclaration de fonction. Ce qui n’est pas gagné encore. Je pourrai alors voir des expressions du type :

imu x := fn(x) -> while x < 3 -> println("{}", x += 1);

Turfu ou pas turfu ? Très subjectif comme avis, mais tu as capté la vibe. Mais voici un autre exemple :

for x := xs -> println("{x}");

Bien sûr, cela est valable pour une instruction seulement. Si besoin de plusieurs instructions, il faudra faire utiliser un bloc {..} :

mut x: int = 0;

while x < 3 {
  x += 1;
  
  -- do something else here.
}

Bref, l’idée me parle grave, je décide de me lancer dans l’implémentation. Sauf que je ne te raconte pas toutes les zbooneries réalisées. Résultat, je n’ai toujours pas fini, j’ai envie de tout casser et je me dis: “pourquoi je me suis lancé dans ce merdier.”

Je suis certain que je vais rester coincé comme une merde. Alors que j’avais dit qu’il fallait faire simple. Tu parles !

@invisageable