Suche…


Verwendung des falschen Operators

In OCaml gibt es verschiedene arithmetische Operatoren für Floats und Ganzzahlen. Darüber hinaus können diese Operatoren nur für 2 Floats oder 2 Ganzzahlen verwendet werden. Hier sind ungültige Ausdrücke in OCaml

1.0 + 2.0
1 + 2.0
1 +. 2
1 +. 2.0

Die richtigen Ausdrücke sind jeweils

1. +. 2.
float_of_int 1 +. 2.
1 + 2
float_of_int 1 +. 2.

In OCaml gibt es keine automatische Umwandlung von Ganzzahlen in Floats oder umgekehrt. Alles ist explizit. Hier ist eine Liste der Integer- und Float-Operatoren

Operation Ganzzahl-Operator Float Operator
Zusatz a + b c +. d
Subtraktion a - b c -. d
Multiplikation a * b c *. c
Einteilung a / b c /. d
Modul a mod b modfloat cd
Potenzierung N / a c ** d

Wo a und b ganze Zahlen sind und c und d Floats.

Vergessen Sie Klammern um Funktionsargumente

Ein häufiger Fehler besteht darin, umgebende Argumente für zusammengesetzte Funktionen in Klammern zu vergessen, was zu Typfehlern führt.

# string_of_int 1+1;;

Error: This expression has type string but an expression was expected of type int

Dies ist wegen des Vorrangs. In der Tat wird das oben genannte bewertet

# (string_of_int 1) + 1;;

was falsch ist. Eine korrekte Syntax wäre

# string_of_int (1+1);;

- : string = "2"


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow