來自Java和C背景,掌握Ocaml的一些概念一直很有趣。其中之一就是,讓一個/ multiple語句在for循環中運行。OCaml - For Loop內部如果聲明
let test_method (x:vector list)(vec:vector) = if List.length x != 0 then {a=0.;b=0.} (* Return a vector of 0,0 *) else for i = 0 to List.length x do let key = {a=(List.nth x i).a;b=(List.nth x i).b} done;;
我得到的錯誤已完成;是一個意外的標記。這是爲什麼發生?這種情況發生,即使我這樣做
let test_method (x:vector list)(vec:vector) = if List.length x != 0 then {a=0.;b=0.} (* Return a vector of 0,0 *) else for i = 0 to List.length x do let key = {a=(List.nth x i).a;b=(List.nth x i).b} in let value = vec_neg key; done;;
其中vec_neg是一種正常工作,否定矢量類型的方法。
任何幫助將不勝感激。
你能解釋一下你在這裏完成的意思嗎?這對我來說似乎沒有意義。而且,for循環在OCaml中的使用要少於C和Java等語言,因此可能有更好的方法來實現它。 – Chuck 2009-10-15 05:38:28