Bereich/Reihenfolge der Auswertung von verschachtelten `let .. in ..` in OCaml

Habe ich ein wenig Probleme hier, dass ich nicht 100% verstehe:

let x = 1 in let x = x+2 in let x = x+3 in x

Ich weiß, das Ergebnis dieses Ausdrucks ist 6, sondern wollen einfach nur, um sicherzustellen, dass die Reihenfolge der Berechnung dieses Ausdrucks; das Teil wird zuerst berechnet?

  • FYI, es gibt keine Verschlüsse beteiligten in diesem code. Dies ist nur über Variablen Bereich.
  • Denn dies ist eine Reine Ausdruck, die Reihenfolge der Auswertung hat keinen sichtbaren Effekt. Da OCaml hat zwingende features, jedoch ist die Reihenfolge der Auswertung für let v = e1 in e2 angegeben ist: der Ausdruck e1 zuerst ausgewertet, dann e2. Wie Chuck sagt, Ihr Beispiel scheint schwieriger, als es ist, weil Sie den gleichen Namen mehrmals. Dies hat keine Auswirkungen auf etwas anderes als Sie, wie einfach es ist, zu verstehen. Sie können immer mit 3 verschiedenen Variablen-Namen.
  • Gleiche wie let x = 1 in let y = x+2 in let z = y+3 in z
  • (Ja, genau! Wir haben sogar verwendet die gleichen Variablen-Namen.)
InformationsquelleAutor Allan Jiang | 2012-04-16
Schreibe einen Kommentar