Die Anweisungen sindWie durchläuft Array in Ocaml, um einen Wert zurückzugeben?
- initialize Norm auf 0,0
- Schleife durch Array
- add Quadrat von die aktuellen Array-Komponente
- return norm
My Code
der Normtype vector = float array
let norm_loop (vector: vector) =
let norm = ref 0.0 in
for x = 0 to (Array.length vector) - 1 do
norm := (!norm +. (vector.(x)*.vector.(x)))
done in
norm
Aber
, wenn ich schreibe, dass in utop sagt es
# let norm_loop (vector: vector) =
let norm = ref 0.0 in
for x = 0 to (Array.length vector) - 1 do
norm := (!norm +. (vector.(x)*.vector.(x)))
done in
norm;;
Characters 4-13:
Warning 26: unused variable norm_loop.
- : float ref = {contents = 0.}
Ich bin mir nicht sicher, was ich falsch mache für utop zu denken norm_loop eine Variable ist. Alles, was ich tun möchte, ist norm
zurückgeben, aber ich kann nicht herausfinden, wie dies zu tun ist.
Jede Hilfe würde sehr geschätzt werden!
Absolut, eine Falte mit viel mehr idiomatischen OCaml. Ein Grund, OCaml zu studieren, ist die Fähigkeit, unveränderliche Daten (keine Referenzen) und Funktionen höherer Ordnung (wie Faltung) zu sehen. –