在erlang中拆分数组

时间:2014-03-21 16:01:12

标签: functional-programming erlang erlang-shell

我编写了一个简单的函数来将数组拆分为2个部分。

split([], [], []) -> [[], []];
split([], [], Part2) -> [[], Part2];
split([], Part1, []) -> split([], [], Part1);
split([], Part1, Part2) -> [Part1, Part2];
split([Head | Tail], Part1, Part2) -> split(Tail, Part2, [Head | Part1]).

我试着玩我的功能,我遇到了一个很大的问题,见下图。该函数适用于很多示例,但如果用于输入[4,9,2],[],[],我得到以下奇怪的结果["\t",[2,4]]

enter image description here

问题出在哪里? 谢谢你的回答和时间。

1 个答案:

答案 0 :(得分:0)

这是erlang的行为:

8> [9].  
"\t"
9> ["\t"].
["\t"]

这是因为,从erlang的POV来看,字符串只是一系列数字。如果数字对应于可打印字符,则erlang将尝试将数字打印为字符。