OCaml
Häufige Fehler
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