【发布时间】:2012-04-23 18:28:29
【问题描述】:
Erlang 将元素添加到同一个列表?在erlang中可以吗?如果没有,那么请帮助我使用任何替代解决方案来实现这一目标。
我必须做的实际要求如下:
我有多个列表 ID,因此基于列表 ID,我必须将状态不等于“B”、“U”(退回和取消订阅)的所有订阅者电子邮件 ID 提取到 1 个列表中,然后我必须删除来自该 listSubscribers 的重复电子邮件 ID,一旦我获得了正确的 ListSubscriber,我将循环它并向所有唯一订阅者发送电子邮件。当我第一次获得订阅者时,将其循环到列表以获取所有订阅者时,问题就出现了 当循环进入第二个并获取订阅者时,它将添加到同一个列表中,抛出错误 bcoz list is already bound。
示例代码我在做什么......
% I have multiple list it can be any number, So by loop through each list id fetching subscribers.
lists:foreach( fun (ListId) ->
ListSubscribers = emailmarketing:get_list_subscribers(ListId), %% Here I am fetching All email subscriber Ids...
io:fwrite("Total Subscriber from this list -> ~p ~n", [ListSubscribers])
end, ListIds),
UniqueSubscriberList = lists:usort(ListSubscribers),
%% Now I'll loop here and send each subscriber campaign email.
谢谢!
【问题讨论】:
-
就像@sch 所说的以及您在上一个问题中发布的内容一样,您必须创建一个新变量并将
lists::append()的返回值分配给该新变量。 -
Ajay,函数式语言编程与 Java、Python、JavaScript 等命令式语言编程有很大不同。在 Erlang 中,数据结构是不可变的,变量只能绑定一次,有没有内置的循环结构。这是一种与您可能习惯的语言截然不同的语言。