несколько типов параметров

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

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

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

7
задан Mitch Dempsey 25 May 2010 в 04:02
поделиться

3 ответа

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

type ('a,'b) xxx = {aaa: 'a; bbb: 'b; ccc: int; }
15
ответ дан 6 December 2019 в 09:18
поделиться

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

        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 }
4
ответ дан 6 December 2019 в 09:18
поделиться

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

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

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

1
ответ дан 6 December 2019 в 09:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: