erlang - 如何将整数存储在列表中
问题描述
我试图分离一个整数数组来计算有多少重复的数字。
对于此输入[10, 20, 20, 10, 10, 30, 50, 10, 20]
,我收到以下输出:
#{10=>"\n\n\n\n",20=>[20,20],30=>[30],50=>"2"}
问题
我想知道如何生成以下输出
#{10=>[10,10,10,10],20=>[20,20],30=>[30],50=>[50]}
我用来生成地图输出的函数是:
%% Next: number
%% Acc: map
separate_socks(Next, Acc) ->
KeyExists = maps:is_key(Next, Acc),
case KeyExists of
true ->
CurrentKeyList = maps:get(Next, Acc),
maps:update(Next, [Next | CurrentKeyList], Acc);
false -> maps:put(Next, [Next], Acc)
end.
解决方案
您的输出实际上是正确的。ascii 值为10。erlang\n
中没有原生string
数据类型。字符串不是值列表。erlang:is_list("abc")
将返回 true。
尝试 [1010, 1020, 1020, 1010, 1010, 1030, 1050, 1010, 1020] 作为输入。它应该显示所有数字。
推荐阅读
- angular - 如何测试一个复杂的可观察链?
- twilio - 使用 Authy API 时,有没有办法为用户更新 OTP 密码?
- ruby - 使用 CL var 执行哈希查找
- python - 在python中实现if语句后如何继续
- bootstrap-4 - 导航栏切换器在重定向到新页面时不会折叠
- php - 在 preg_match php 中排除单引号
- python - Django:修改基于类的视图上下文(使用 **kwargs)
- java - 在 Vaadin 中使用 Spring WebFlux
- kendo-react-ui - 从 URL 解析 JSON 并将值放入 Kendo React DropdownList
- android - Android Studio 403 Forbidden error on gradle sync 在代理下