Blog
All articles. All pillars. All authors.
Bornes génériques et clauses Where
Comment FLIN implémente les bornes génériques et les clauses where -- contraindre les paramètres de type avec des traits, fusionner les syntaxes inline et where, et valider les contraintes à la compilation.
Boucles While-Let et Break avec valeur
Comment nous avons implémenté les boucles while-let et le break avec valeur dans FLIN -- l'itération pilotée par motifs et les boucles qui produisent des valeurs, inspirées du flux de contrôle de Rust.
Boucles étiquetées et motifs Or
Comment nous avons implémenté les boucles étiquetées et les motifs Or dans FLIN -- sortir des boucles externes par nom, combiner des bras de match avec la syntaxe pipe, et les changements du compilateur qui les supportent.
Pattern matching : de switch à match
Comment nous avons conçu le pattern matching de FLIN -- du simple filtrage par valeur à la vérification d'exhaustivité sur les unions étiquetées, et l'implémentation Rust qui alimente le tout.
Types union étiquetés et types de données algébriques
Comment nous avons apporté les types de données algébriques à FLIN -- les enums génériques avec données associées, Option<T>, Result<T, E>, et l'implémentation Rust des unions étiquetées.
La déstructuration partout
Comment nous avons implémenté la déstructuration dans FLIN -- déstructuration de tableaux, d'entités et imbriquée avec motifs rest, valeurs par défaut, et l'approche stub-first qui a gardé le compilateur sain.
Tuples, enums et structs
Comment nous avons conçu les trois structures de données fondamentales de FLIN -- les tuples pour le regroupement anonyme, les enums pour les alternatives nommées et les structs d'entités pour les enregistrements persistants.
Gardes de type et rétrécissement de type à l'exécution
Comment l'opérateur is de FLIN permet la vérification de type à l'exécution avec le rétrécissement de type au moment de la compilation -- le pont entre les valeurs dynamiques et la sécurité statique.
Accès aux métadonnées de version
Comment nous avons exposé les métadonnées de version des entités -- id, version_number, created_at, updated_at, deleted_at -- comme propriétés de première classe dans FLIN, permettant des pistes d'audit sans configuration.
Arithmétique temporelle : ajouter des jours, comparer des dates
Comment nous avons implémenté les littéraux de durée et l'arithmétique temporelle dans FLIN -- de l'élégante syntaxe N.days au constant folding à la compilation, offrant des abstractions à coût zéro pour les opérations de dates.
Précision du suivi et validation
Comment la session 079 a révélé que le modèle temporel de FLIN était plus avancé que documenté -- et les leçons tirées sur la précision du suivi, la validation et le danger de la documentation obsolète.
Historique des versions et requêtes de voyage dans le temps
Plongée approfondie dans l'opérateur @ de FLIN pour les requêtes de voyage dans le temps, la propriété .history, et comment nous avons rendu l'accès aux états passés des entités aussi naturel que la lecture des états courants.