Ocaml-Schlüsselwort "in" - und Gebrauchsspuren

Bin ich beim Lesen ein paar Notizen und kam in diesem code sieht Recht sauber für mich:

# let sigma f m =
  let rec sum (i, z) =
  if i = m then z else sum(i+1, z+.f i)
  in sum(0, 0.0);;
val sigma : (int -> float) -> int -> float = <fun>
# sigma (function k -> float (k*k)) 10;;
- : float = 285.

Verstehe ich jedes bit außer dem Teil, wo es in sum(0, 0.0). Naja das problem ist eigentlich nicht über die in Schlüsselwort, aber dieses: sum(0, 0.0). Was soll das bedeuten und warum ist es sinnvoll, für diese Funktion zu arbeiten? Ich habe einige googeln und habe etwas auf der in Schlüsselwort aus der Ocaml-Website, aber das macht für mich keinen Sinn. Dies ist, was ich gefunden habe:

class-expr  ::= class-path  
         [ typexpr  {, typexpr} ]  class-path  
         ( class-expr )  
         ( class-expr :  class-type )  
         class-expr  {argument}+  
         fun {parameter}+ ->  class-expr  
         let [rec] let-binding  {and let-binding} in  class-expr  
         object class-body end  

Brauche ich nicht, eine Erklärung der tatsächlichen Funktion. Was ich brauche helfen mit, dass kleine in sum(0, 0.0).

  • Ich downvoted die Frage aber beantwortet, weil ich das Gefühl, dass es sehr verwirrend ist gefragt, und weil jede tutorial auf Ocaml, erklärt das viel besser als wir können in ein paar Minuten.
InformationsquelleAutor Emmanuel | 2013-10-27
Schreibe einen Kommentar