functional-programming - 如何在 Erlang 中比较两个映射的值。[我的解决方案没有返回任何值]
问题描述
compare(M1, M2) ->
Map1 = maps:from_list(M1)
Map2 = maps:from_list(M2)
Keys1 = maps:keys(Map1)
lists:foreach(fun(I) ->
V1 = maps:get(I, Map1)
V2 = maps:get(I, Map2)
if V1 < V2 -> true;
true -> false end
end, Keys1).
这是我的方法。但我的输出总是没问题。我在这里想念什么?条件:两个地图中的键相同。例如,这就是我将如何执行
compare([{p1, 1},{p2, 3}], [{p1, 4}, {p2, 5}]
- M1 中的值应小于 M2,否则返回 false。
解决方案
您也可以尝试使用列表推导(如果您想比较列表而不是地图)
List1 = [{p1, 1},{p2, 3}],
List2 = [{p1, 4}, {p2, 5}],
Result = [Val < Val2 || {Key, Val} <- List1, {Key2, Val2} <- List2].
结果将是:
[true,true,true,true]
推荐阅读
- reactjs - React-Admin I 自定义按钮无法获取表单数据
- python - 如何在不使用 python 中的函数的情况下从另一个脚本重新启动脚本?
- javascript - 映射嵌套对象
- typescript - Vue / Typescript:找不到模块'vue-simplemde'
- android - recylerview适配器android中的数据绑定?
- python-3.x - 使用 xml.etree 从 xml 获取特定标签的数据
- algorithm - 从交易中计算投资价值
- c++ - 重载矩阵赋值运算符,小事起大作用
- flutter - Flutter - setState 仅在第二次单击后更新并呈现旧值
- tensorrt - Tensorrt 构建引擎给出静态输入尺寸错误