2016-03-22 6 views
0

Dies ist mein erstes Mal, dass ich Ubuntu und SML/NJ verwendet. Und diese Frage kam mir, als ich den Ausdruck verwenden CM.make():Ein Fehler ist aufgetreten, wenn ich "CM.make();" in SML, Ubuntu

Standard ML of New Jersey v110.76 [built: Tue Oct 22 14:04:11 2013] 
- CM.make() ; 

[autoloading] 

[library $smlnj/cm/cm.cm is stable] 

[library $smlnj/internal/cm-sig-lib.cm is stable] 

[library $/pgraph.cm is stable] 

[library $smlnj/internal/srcpath-lib.cm is stable] 

[library $SMLNJ-BASIS/basis.cm is stable] 

[autoloading done] 

stdIn:1.2-1.11 Error: operator and operand don't agree [tycon mismatch] 

    operator domain: string 

    operand:   unit 

    in expression: 

    CM.make() 

Ich weiß nicht, warum und wo bin ich falsch.
Könnte mir jemand helfen?

Antwort

3
stdIn:1.2-1.11 Error: operator and operand don't agree [tycon mismatch] 
    operator domain: string 
    operand:   unit 
    in expression: 
    CM.make() 

Was die obige Fehler sagt, ist, dass CM.make eine Funktion, die ein String-Argument akzeptiert ("Operator Domain: string"), aber sie gab es eine Einheit () Argument ("Operand: Einheit").

CM.make erwartet einen Pfad zu einer .cm-Datei, wo Sie Ihre Quelldateien auflisten:

group is 
    file-1.sml 
    file-2.sml 

Speichern Sie die oben in einer Datei namens sources.cm und dann CM.make "sources.cm" mit laden. Vergessen Sie nicht, Ihre tatsächlichen Quelldateien aufzulisten, nicht file-1.sml und file-2.sml.

Es gibt andere Dinge, die Sie mit .cm-Dateien tun können, die in der CM manual behandelt werden, aber die oben genannten sollten genug sein, um Sie zu beginnen.