несколько параметров типа - PullRequest
7 голосов
/ 25 мая 2010

Я пытаюсь написать что-то вроде этого:

type 'a 'b xxx = {aaa: 'a: bbb: 'b: ccc: int};;

Не компилируется. Это просто синтаксическая ошибка, или они не позволяют использовать несколько параметров типа? Тогда почему?

Ответы [ 3 ]

15 голосов
/ 25 мая 2010

В ML параметры нескольких типов записываются в скобках и разделяются запятыми, например:

type ('a,'b) xxx = {aaa: 'a; bbb: 'b; ccc: int; }
4 голосов
/ 25 мая 2010

На самом деле вы можете написать так в пересмотренном синтаксисе:

        Objective Caml version 3.11.2

# #load "dynlink.cma";;
# #load "camlp4r.cma";;
    Camlp4 Parsing version 3.11.2

# type xxx 'a 'b = { aaa : 'a; bbb: 'b; ccc: int};
type xxx 'a 'b = { aaa : 'a; bbb : 'b; ccc : int }
1 голос
/ 06 июня 2010

Параметры типа определены в руководстве как:

type-params ::= type-param | ( type-param  { , type-param } )  

Итак, для списка параметров типа это список через запятую, заключенный в круглые скобки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...