Как я могу создать тип с несколькими параметрами в OCaml? - PullRequest
5 голосов
/ 01 декабря 2009

Я пытаюсь создать тип, который имеет несколько параметров типа. Я знаю, как сделать тип с одним параметром:

type 'a foo = 'a * int

Но мне нужно иметь два параметра, чтобы я мог параметризировать часть 'int'. Как я могу это сделать?

Ответы [ 2 ]

8 голосов
/ 01 декабря 2009

Способ сделать это:

type ('a, 'b) foo = 'a * 'b

Параметры типа не каррируются, поэтому вам нужно указывать их в виде кортежа как единого параметра. Хорошим примером этого является модуль Hashtbl:

type ('a, 'b) t 

Тип хеш-таблиц из типа 'a набрать 'b.

2 голосов
/ 01 декабря 2009

# type ('a, 'b) couple = 'a * 'b ;;

Например ...

...