计算Erlang编程中的字符示例,第二个E.

时间:2018-02-01 08:07:44

标签: erlang

on pg。 Programming Erlang, 2nd E中的82,给出了一个示例,用于生成字符串中字符的频率图(实际上适用于计算任何列表中的元素):

-module(count).
-export([count_characters/1]).

count_characters(Str) ->
    count_characters(Str, #{}).

count_characters([H|T], #{H := N}=X) ->
    count_characters(T, X#{H := N + 1});
count_characters([H|T], X) ->
    count_characters(T, X#{H => 1});
count_characters([], X) -> X.

然而,试图编译它会给我:

Erlang/OTP 19 [erts-8.3.5.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V8.3.5.3  (abort with ^G)
1> c(..., [{outdir, ...}]).
...
.../count.erl:7: variable 'H' is unbound
error

...是我遗漏的东西。

这实际上在本书的网站上标注为errata #77244

这段代码有什么问题?制作频率图的正确方法是什么?

0 个答案:

没有答案