我现在学习 Erlang 和列表推导,并发现了一个奇怪的(对我而言)问题。所以我有一个简单的列表理解,有一个简单的公式,没有过滤器:
gen_list(List)->
[N*N || N <- List].
正如我所料,输出是正确的:gen_list([2,3,4]). [4,9,16]
然后我这样做:
gen_list(List)->
[N*N*N*N || N <- List].
并且输出再次正确:gen_list([2,3,4]). [16,81,256]
. 但是当我将公式定义为:gen_list(List)->
[N*N*N || N <- List].
我得到下一个输出:gen_list([2,3,4]). "\b\e@"
.
这是什么:"\b\e@"
?? 为什么只有当我有三个N时才得到它?我什至可以这样写公式:N*N*N*N*N*N*N*N
,并且输出再次将如我所料。但是用三个 NI 总是得到这么奇怪的结果。有人可以为我解释一下吗?
我使用 ArchLinux 和 GNU Emacs。