我在 Ocaml 中编写了以下代码来打印二维数组:
let string_of_float_arr l = String.concat " " (Array.map string_of_float l)
let float_arr_to_string l = String.concat "\n" (Array.map string_of_float_arr l)
我收到错误,有人可以帮我指出错误吗
注意:如果您只想打印,请使用 Array.iter
let arr = [|1.0; 2.0; 3.0; |]
let () = Array.iter(fun elem -> print_endline (string_of_float elem)) arr
在二维浮点数组上使用 Array.iter 是一个简单的练习。
就像我说的。如果目标是构建一个字符串,我会使用 Array.fold_left 来解决这个练习。以下是如何将 Array.fold_left 应用于一维浮点数组来获取字符串。
let arr = [|1.0; 2.0; 3.0|]
let farr_to_string arr =
Array.fold_left (fun acc elem -> acc ^ (string_of_float elem)) "" arr
let () = print_endline (farr_to_string arr)
现在您必须创建另一个函数,该函数采用 2D 浮点数组并再次应用 Array.fold_left。