'==' сопоставление типов и шаблонов - дождитесь других рекурсивных вызовов и ничего не делайте в деле - PullRequest
0 голосов
/ 12 июня 2018

У меня есть два вопроса относительно OCaml.Во-первых, что означает == при определении type.

Например, в конце этой страницы можно увидеть следующий код:

type compteur == int;;

Тогда в чем разница:

type compteur = int;;

Более того, у меня есть другой вопрос, касающийся сопоставления с образцом.Как сказать, что вы не хотите ничего возвращать в случае.

Например, допустим, у меня есть функция f, которая возвращает логическое значение:

let rec f v = function 
     | t when t<v -> true
     | t when t > v -> f (t-1)
     | t when t = v -> (* here a code to say that you do nothing, and wait for the other recursive call *)

1 Ответ

0 голосов
/ 12 июня 2018

type compteur == int - синтаксическая ошибка.Единственный допустимый способ определения псевдонима типа - с помощью =, а не ==.Это просто опечатка на странице, на которую вы ссылаетесь.

Как сказать, что вы не хотите ничего возвращать в случае.

Единственный способ ничего не вернуть из функциибудет выходить из программы, вызывать исключение или цикл (или повторяться) бесконечно.В противном случае функция всегда возвращает значение.

здесь код, который говорит о том, что вы ничего не делаете, и ждете другого рекурсивного вызова

Какой еще рекурсивный вызов?В случае, если t = v будет выполняться только код для этого случая.Другого кода для ожидания нет.

...