【发布时间】:2015-09-21 19:16:27
【问题描述】:
Erlang我几乎是新手
我有一个列表:
List = [[{name, <<"redCar1">>}, {turbo, true}], [{name, <<"redCar2">>}, {turbo, true}], [{name, <<"greenCard">>}, {turbo, false}]].
现在我想过滤所有"red"汽车
我尝试使用:
filterCar() ->
MyF = fun(List) ->
case lists:keyfind(name, 1, List) of
{name, <<"red", _Rest/binary>>} ->
true:
_ ->
false
end
end,
MyF.
然后
lists:filter(MyF, List),
效果很好。
现在我想创建一个通用函数来过滤,比如:
myfilter(Value, List) ->
case lists:keyfind(name, 1, List) of
{name, <<Value, _Rest/binary>>} ->
true;
_ ->
false
end.
但是当我尝试执行这个函数时,我总是得到[] 空列表。
我确定问题出在我尝试传递 Value 时,因为如果我替换
{name, <<Value, _Rest/binary>>}
与
{name, <<"red", _Rest/binary>>}
有效。
我的目标是在忽略大小写的情况下找到所有以car 开头的字符串。
【问题讨论】:
标签: erlang