【问题标题】:How to print an array of arrays?如何打印数组数组?
【发布时间】:2018-07-06 06:28:36
【问题描述】:

尽管我已经检查了有关如何打印数组的先前答案,但我在打印数组数组时遇到了困难。我无法理解在 OCaml 中执行此操作的功能性方式。

Ocaml: printing out elements in an array of int lists

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

mutable ch               : t array array;

【问题讨论】:

    标签: arrays printing ocaml


    【解决方案1】:
    let ch = [| [|"a"; "b"|]; [|"c"|] |]
    let () = ch |> Array.iter (Array.iter print_endline)
    

    这使用部分函数应用程序来保持简短。如果我们稍微打开它:

    let () = ch |> Array.iter (fun xs -> xs |> Array.iter (fun x -> print_endline x))
    

    【讨论】:

      【解决方案2】:

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

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

      let a = [| [|1; 2|]; [|3;4|] |]
      

      我们可以为这些值定义一个打印机

      let int_array_array_printer = let open Fmt in
        array (array int)
      

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

      ;; Format.printf "@[<v>%a@]@."
         int_array_array_printer a
      

      在格式字符串@[&lt;v&gt;%a@]@.中,可以将不同的元素分解成

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

      【讨论】:

        猜你喜欢
        • 2012-04-01
        • 1970-01-01
        • 2012-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多