Pour définir la valeur d'un tuple, pourquoi imposer le mot tuple ? Est ce qu'une suite d'expression ne peut pas représenter un tuple directement ? En gros pourquoi devoir écrire (tuple 1 2 3) plutôt que (1 2 3) ?
Prenons un exemple: (a b c)
. Là par contre c'est pas vraiment possible. Au parsing, on peut pas directement vérifier si la variable désigne une fonction ou une valeur "normale". Et quand bien même on écrirait une seconde étape après le parsing pour voir s'il s'agit d'une valeur ou d'une fonction, ça impliquerait qu'on ne pourrais pas faire de tuple de fonctions. Du coup je propose quelque chose comme (1, 2, 3)
comme ça il n'y a aucune ambiguïté.
Par souci de cohérence, si on choisit la syntaxe (1, 2, 3)
, j'aurai tendance à préférer la syntaxe [1, 2, 3]
pour les listes, mais avec les listes on a le choix donc faut voir.
Par contre je suis d'accord avec nohar, la notation avec des flèches est pas super cohérent avec la grammaire de LISP. On pourrait imaginer quelque chose comme (-> A B C T)
mais encore une fois ça demande des fonctions variadiques. Je propose d'implémenter les fonctions variadiques dans mon interpréteur Haskell pour voir si ça va bien avec le reste.