2013-11-13 2 views
5

Что на самом деле означает оператор OCaml?Какова цель использования «:» в объявлении функции OCaml

let func (v: A.a) : unit =  

#rest of the function 
  1. это означает, что она принимает V типа A.a и возврата блока
  2. или принимает два параметра, V и A.a и вернуть блок?
  3. или он принимает функцию v с параметром A.a и возвращает единицу?
  4. или что-то еще?
+1

Я ожидал, что это будет объяснено в самом начале руководства OCaml, но я не могу найти ни слова об этом. – molbdnilo

+0

да, вот почему я разместил здесь. –

ответ

5

let func (v: A.a) : unit =

Первый : означает v is a parameter and its type is expected to be A.a.

Второй : означает func is expected to return a type of unit

2

1 и, возможно, 3. В функции OCaml является значением и если A.a является функция-типа на 1-ый аргумент func является функцией.

+0

так: единица здесь - тип возврата? или единица - это тип целого (v: A.a) оператора? –

+1

Да, последний ': something' без круглых скобок - это тип возврата для целой функции. – Kakadu

2

Это означает 1.

То есть, если v имеет тип A.a, то func v имеет тип unit.
Или, что эквивалентно, тип func - A.a -> unit.

Смежные вопросы