【发布时间】:2013-03-15 08:29:36
【问题描述】:
作为昨天问题的后续Erlang: choosing unique items from a list, using recursion
在 Erlang 中,假设我想从给定列表中选择所有 唯一 项,例如
List = [foo, bar, buzz, foo].
我使用了你的code examples 导致
NewList = [bar, buzz].
我将如何在 Erlang 中进一步操作 NewList?
例如,假设我不仅要从List 中选择所有唯一项,还要计算NewList 中所有结果项的字符总数?
【问题讨论】:
-
感谢您到目前为止的回答。但是,我不想再次手动输入列表,即我对字符计数功能(这是次要的)不太感兴趣,但更多的是我如何“继承”使原始列表唯一的结果到自动使用结果进行进一步的操作,无论是计数字符还是其他。谢谢
-
嗯,NewList 是一个变量,使用它就可以了。你能详细说明一下吗?
-
当然。假设我的列表是 List = [foo, bar, buzz, foo]。我想要总数。所有独特项目的字符。进一步假设我使用了 CODE uniques(L) -> uniques(L, [], [])。独特的([],_,Acc)->列表:反向(Acc); uniques([X | Rest], Seen, Acc) -> case lists:member(X, Seen) of true -> uniques(Rest, Seen, lists:delete(X, Acc));假 -> 独特(休息,[X | 看到],[X | Acc])结束。 CODE 所以得到独特的物品。我将如何修改此代码 smippet 以获得否。字符数(仅作为示例)?
-
uniques_and_chars(L)-> Uniques = uniques(L), num_chars(Uniques)。