Présentation sur Coq : « Alors en Coq, on n'a pas de types de base comme int ou char, mais ça tombe bien parce qu'on s'en fout. » 🤔

Découverte en OCaml : on peut définir un type vide ! 😀

type empty = | ;;

@MartinShadok
Je crois pas. L'usage est probablement de définir une fonction qui fait un assert false.

@nore @lyxia C’est marrant de voir que pour OCaml, un type non déclaré n’est vraiment pas considéré comme vide (même s’il n’a aucun constructeur !) :

# type t ;;
# let f (x : t) = match x with _ -> .;;
Error: This match case could not be refuted.
Here is an example of a value that would reach it: _

Mais du coup, il vaut mieux déclarer un type explicitement vide avec « type vide = | » pour que ça serve à quelque chose ☺

@MartinShadok @lyxia Justement, un type déclaré comme ça est un type abstrait, donc ton code doit pouvoir marcher quel que soit le type ! Ta fonction f ci-dessus ne marche que si c'est le type vide, ce qui est différent.

Sign in to participate in the conversation
La Quadrature du Net - Mastodon - Media Fédéré

Mamot.fr est un serveur Mastodon francophone, géré par La Quadrature du Net.