有任务:写出一个函数printmat : bool array array -> unit = <fun>
给定一个bool矩阵,它在屏幕上以1和0打印它,而不是真和假
# let matrix =[|[| false ; true ; false |];[| true ; false ; false
|];[| false ; false ; true |];[| false ; false ; false |]|];;
# printmat matrix ;;
010
100
001
000
到目前为止我已经做到了:
let matrix = [|
[|true; true; false; false|];
[|false; false; true; true|];
[|true; false; true; false|];
[|true; false; false; true|]
|];;
let print_s matrix =
let n = Array.length matrix in
for i = 0 to n - 1 do
let n1 = Array.length matrix in
for j = 0 to n1 - 1 do
print_string matrix.(i).(j);
done;
print_string"/n";
done;;
但是,我的函数有一个类型string array array
而不是bool array array
。它也影响函数的调用,因为我的代码只适用于已经声明的矩阵,我不能用给定的矩阵调用函数,因为它期望bool类型。
您应该查看Printf
模块,特别是printf
的转换规范(与fprintf
相同)。
要输出bool值,只需要输入
Printf.printf "%B"
[EDIT]不要使用%b
,它已被弃用