Tel qu'il est présenté traditionnellement, le lambda-calcul est non-typé.
Tu as vu que je parlais de la notation de l'inférence de type, et pas la notion ? Cette notation est la même notation que celle utilisée pour le lambda-calcul typé, ce qui est une bonne chose si on en a déjà fait, mais qui n'est pas évident sinon.
Tu sais, le fameux: (e -> e -> e) qui désigne une fonction qu'en C on écrirait "e f(e, e)".
en caml il n'y a que des expressions
Oui, et contrairement à d'autres langages fonctionnels plus "purs", il y a des expressions qui ne retournent pas de valeur mais on des effet de bord. C'est pratique mais ça complique les choses.
ouais enfin il n'y a que deux familles d'opérateurs, ceux pour entiers et ceux pour flottants qui ont un point en plus. C'est pas la mort à mémoriser.
C'est faux, il y a des opérateurs différents pour tous les types. Par exemple l'opérateur de "construction de liste" (je ne sais pas comment ça s'appelle exactement) est différent selon le type de "liste" que l'on manipule. Pour une liste c'est [ et ], pour un vecteur c'est [| et |]. C'est comme ça pour tous les opérateurs, puisqu'un opérateur est une fonction dont le type ne peut pas varier.
[^] # Re: Avis
Posté par Yusei (Mastodon) . En réponse au journal Commencer à programmer ?. Évalué à 1.
Tu as vu que je parlais de la notation de l'inférence de type, et pas la notion ? Cette notation est la même notation que celle utilisée pour le lambda-calcul typé, ce qui est une bonne chose si on en a déjà fait, mais qui n'est pas évident sinon.
Tu sais, le fameux: (e -> e -> e) qui désigne une fonction qu'en C on écrirait "e f(e, e)".
Oui, et contrairement à d'autres langages fonctionnels plus "purs", il y a des expressions qui ne retournent pas de valeur mais on des effet de bord. C'est pratique mais ça complique les choses.
C'est faux, il y a des opérateurs différents pour tous les types. Par exemple l'opérateur de "construction de liste" (je ne sais pas comment ça s'appelle exactement) est différent selon le type de "liste" que l'on manipule. Pour une liste c'est [ et ], pour un vecteur c'est [| et |]. C'est comme ça pour tous les opérateurs, puisqu'un opérateur est une fonction dont le type ne peut pas varier.