8 Stimmen

Typ mit mehreren Parametern

Ich versuche, etwas in dieser Art zu schreiben:

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

Es lässt sich nicht kompilieren. Ist es nur ein Syntaxfehler, oder sind mehrere Parameter für einen Typ nicht erlaubt? Warum dann?

18voto

nlucaroni Punkte 46744

In ML werden mehrere Typparameter zwischen Klammern und durch Kommas getrennt geschrieben, etwa so:

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

5voto

ygrek Punkte 6606

Eigentlich kann man das so schreiben, in überarbeiteter Syntax:

        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 }

3voto

Die Typparameter sind in der Handbuch als:

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

Bei einer Liste von Typparametern handelt es sich also um eine durch Kommata getrennte Liste, die in Klammern steht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X