如何打印数组数组?

old*_*959 1 printing arrays ocaml

虽然我已经检查过如何打印数组的上一个答案,但我仍然卡在打印阵列数组中.在OCaml中,我不能用功能性的方式来解决这个问题.

Ocaml:打印出int列表数组中的元素

假设我有一个数组数组.我该如何简单地打印这个数组?

mutable ch               : t array array;
Run Code Online (Sandbox Code Playgroud)

oct*_*ron 6

打印阵列的另一种方法是使用Format模块进行耦合到Fmt库的漂亮打印,该库提供用于定义打印功能的组合器:

例如,如果你有一个整数数组数组:

let a = [| [|1; 2|]; [|3;4|] |]
Run Code Online (Sandbox Code Playgroud)

我们可以使用这些值定义打印机

let int_array_array_printer = let open Fmt in
  array (array int)
Run Code Online (Sandbox Code Playgroud)

然后我们可以使用Format模块打印数组:

;; Format.printf "@[<v>%a@]@."
   int_array_array_printer a
Run Code Online (Sandbox Code Playgroud)

在格式字符串中@[<v>%a@]@.,可以将不同的元素分解为

  • @[<v> 打开一个垂直框,从而在每个元素之间打印一个换行符
  • %a:下一个元素将使用自己的漂亮打印功能
  • @] 关闭垂直框
  • @. 刷新缓冲区并添加新行.