печать двумерного массива в ocaml - PullRequest
0 голосов
/ 18 марта 2020

Я написал следующий код в Ocaml для печати 2D-массива:

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)

Я получаю сообщение об ошибке, может кто-нибудь помочь мне указать на ошибку

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Примечание. Если вы просто хотите печатать, используйте Array.iter

let arr = [|1.0; 2.0; 3.0; |]

let () = Array.iter(fun elem -> print_endline (string_of_float elem)) arr

Простое упражнение - использование Array.iter для двумерного массива с плавающей точкой.

0 голосов
/ 18 марта 2020

Как я уже сказал. Я бы потянулся к 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...