• [^] # Re: Intéressant

    Posté par (site web personnel) . En réponse au journal Letlang, encore un nouveau langage de programmation. Évalué à 3.

    En quoi est-ce différent du système de haskell, dont les classes de type permet de résoudre élégamment se problème ?

    C'est également similaire au système de type de TypeScript ou toute forme de pattern matching structurelle que l'on trouve en Erlang/Elixir, et qui commence à apparaître en Python avec match.

    Ici c'est pour dire que l'information de type ne se situe pas au niveau de la variable. Il n'y aura pas de mot clé typeof par exemple.

    Pour le système de contrainte, tu as vu juste :

    let x-3 = 0 // => x = 3, c'est la seule solution
    x:=2 // Erreur
    x:=3 // Valide mais inutile, on sait déjà que x = 3
    

    Quand on ajoute une contrainte, est-elle testé à la compilation ?

    Comme je l'ai dit dans le disclaimer, très peu de code pour l'instant. Le but ultime est d'en faire un langage compilé vers LLVM IR, pour l'instant c'est un interpréteur.

    Je compte faire le plus de vérifications possibles à la compilation, mais l'exemple suivant devra être testé à l'exécution :

    let x: int
    let x > 0
    x := readline() |> parse_int() # pipeline operator comme en Elixir
    

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg