0

我写了一个简单的函数来将一个数组分成两部分。

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]]

在此处输入图像描述

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

4

1 回答 1

0

这是erlang的一种行为:

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

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

于 2014-03-21T23:58:58.800 回答