J'ai oublié de préciser que |s| s != q est une closure, c'est-à-dire une fonction anonyme. La syntaxe est un peu étrange, mais les paramètres de la fonction se mettent entre deux barres verticales.
Sinon, le compilateur est capable de tout inférer, donc on n'a pas besoin d'écrire les types de variable. Mais comme l'a dit un autre commentaire, on peut toujours écrire les types si on considère que le code sera plus clair. En l'occurrence, ça me semble plutôt intuitif que front et back retournent une référence sur le début et la fin de la queue. De façon générale (comme dans les autres langages fonctionnels comme Haskell ou Ocaml), on écrit de petites fonctions et on n'annote les variable que dans les (rares) cas où le compilateur a des problèmes d'inférence (typiquement, quand seul le retour d'une fonction est générique).
Pour rebondir sur le dernier commentaire, il ne faut pas avoir peur du Rust : finalement ça ressemble quand même beaucoup aux langages objets : on a des structures sur lesquelles on implémente des méthodes ; ce qu'on peut voir comme une classe. En revanche, je ne suis pas spécialiste de l'histoire de l'informatique, mais il me semble que les langages fonctionnels sont plus vieux que les langages objets (en tout cas suffisamment vieux pour que n'importe quel dino connaisse :p). Le Lisp existe depuis 1958 selon Wikipédia.
Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.
[^] # Re: Super !
Posté par Morovaille . En réponse au journal Port de taptempo en Rust. Évalué à 1.
J'ai oublié de préciser que
|s| s != qest une closure, c'est-à-dire une fonction anonyme. La syntaxe est un peu étrange, mais les paramètres de la fonction se mettent entre deux barres verticales.Sinon, le compilateur est capable de tout inférer, donc on n'a pas besoin d'écrire les types de variable. Mais comme l'a dit un autre commentaire, on peut toujours écrire les types si on considère que le code sera plus clair. En l'occurrence, ça me semble plutôt intuitif que
frontetbackretournent une référence sur le début et la fin de la queue. De façon générale (comme dans les autres langages fonctionnels commeHaskellouOcaml), on écrit de petites fonctions et on n'annote les variable que dans les (rares) cas où le compilateur a des problèmes d'inférence (typiquement, quand seul le retour d'une fonction est générique).Pour rebondir sur le dernier commentaire, il ne faut pas avoir peur du Rust : finalement ça ressemble quand même beaucoup aux langages objets : on a des structures sur lesquelles on implémente des méthodes ; ce qu'on peut voir comme une classe. En revanche, je ne suis pas spécialiste de l'histoire de l'informatique, mais il me semble que les langages fonctionnels sont plus vieux que les langages objets (en tout cas suffisamment vieux pour que n'importe quel dino connaisse :p). Le Lisp existe depuis 1958 selon Wikipédia.
Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.