Es tut mir leid für die hier eine solche grundlegende Frage zu stellen, aber ich bin ein Syntaxfehler, wenn ich versuche den folgenden Code zu kompilieren,OCaml Syntaxfehler durch Doppelsemikolon Fest
let sum_of_squares_of_two_largest x y z =
let a :: b :: _ = List.sort (fun x y -> -(compare x y)) [x; y; z] in
a * a + b * b;
let rec factorial n =
if n = 0 then 1 else n * factorial (n - 1);
let e_term n = 1.0 /. float_of_int (factorial n);
let rec e_approximation n =
if n = 0 then (e_term 0) else (e_term n) +. (e_approximation (n - 1));
let rec is_even x = if x = 0 then true else is_odd (x - 1);
and is_odd x = not (is_even x);
let rec f_rec n =
if n < 3 then n else f_rec(n - 1) + 2 * f_rec(n - 2) + 3 * f_rec(n - 3);
Der uninformativ Compiler sagt mir In Zeile 19, die die letzte Zeile der Datei darstellt, liegt ein Syntaxfehler vor.
File "source.ml", line 19, characters 0-0:
Error: Syntax error
Das heißt, Linie 19 ist eine Leerzeile, nur mit einem neuen Online-Charakter.
Ich kann diesen Syntaxfehler "beheben", indem Sie ;;
am Ende jeder Funktionsdefinition anstelle der ;
hinzufügen.
Fehle ich ein Semikolon irgendwo?
Sie brauchen keines der Semikolons, die Sie in diesem Code haben, einfach alle loswerden. –
@SteveVinoski Ah das war es. Danke vielmals! Wann werden Semikola benötigt? –
Verwenden Sie Semikola, um zwingende Anweisungen zu trennen. –