在erlang中打印单元格网格

时间:2015-12-03 16:53:41

标签: printing erlang

我对erlang和一般编程都很陌生。

我想创建一个" Grid"细胞,细胞呈现为:

+   +

+   +

我所知道的是网格的宽度和高度。

因此,例如,3x3网格表示为:

+  +  +  + 

+  +  +  +

+  +  +  +

+  +  +  +

print_grid(Height,Width) - >     而不是这里的一些代码。

有人可以给我一个如何解决这个问题的小费吗?

2 个答案:

答案 0 :(得分:0)

我怀疑你不需要在单元格中添加一些字符等其他功能,但你应该可以修改它:

4> Pgrid= fun(W,H) -> L = lists:foldl(fun(_,Acc) -> "+   " ++ Acc end,"~n~n",lists:seq(1,W+1)),
4>        G = lists:foldl(fun(_,Acc)-> L ++ Acc end,[],lists:seq(1,H+1)), 
4>        io:format(G)                                                                                
4>        end.                                                                                        
#Fun<erl_eval.12.54118792>
5> Pgrid(6,3).                                                                                 
+   +   +   +   +   +   +   

+   +   +   +   +   +   +   

+   +   +   +   +   +   +   

+   +   +   +   +   +   +   

ok
6> 

答案 1 :(得分:0)

对于此问题,您可以使用此功能

grid(_,0)->ok;

grid(W,H)->
    io:format(string:copies("+   ",W-1)++"+~n~n"),
    grid(W,H-1).

输出:

sol:grid(6,3).
+   +   +   +   +   +

+   +   +   +   +   +

+   +   +   +   +   +



15> sol:grid(3,3).
+   +   +

+   +   +

+   +   +