LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

type connect_status = Success | BadHostname of string | CannotConnect of string;;

Можно и просто

type connect_status = Success of socket | BadHostname | CannotConnect

А потом другая функция должна вернуть

(defun calc (x)
  (cond
    ((> x MAX) :overflow)
    ((= x 0) :zero)
    (else (real-calc x))))

Пишем для неё тип:

type calc_status = Success of number | Overflow | Zero

Упс. Success использовать нельзя. Он уже есть в другом типе. Потом в третьей функции надо различать Success | Zero | Underflow... Приходится делать уродливые Success2, Zero2, ... это я и называю «камасутрой»

Исходная версия monk, :

type connect_status = Success | BadHostname of string | CannotConnect of string;;

Можно и просто

type connect_status = Success of socket | BadHostname | CannotConnect

А потом другая функция должна вернуть

(defun calc (x)
  (cond
    ((> x MAX) :overflow)
    ((= x 0) :zero)
    (else (real-calc x))))

Пишем для неё тип:

type calc_status = Success of number | Overflow | Zero