0
- 初始化規範爲0.0
- 遍歷陣列
- 的添加到範數 平方當前陣列部件
- 返回常態
我的代碼
type 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
但是當我鍵入到UTOP它說
# 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.}
我不知道我在做什麼錯UTOP認爲norm_loop是一個變量。我想要做的只是返回norm
,但我似乎無法弄清楚如何做到這一點。
任何幫助將不勝感激!
當然,使用倍是更地道的OCaml。研究OCaml的一個原因是看到不可變數據(沒有引用)和高階函數(如fold)的強大功能。 –