【发布时间】:2014-07-19 12:56:40
【问题描述】:
我正在尝试使用此方法递归地构建一个列表。 OL(occurrence list of characters)是一个最终会缩小为[]的列表。我需要在警卫中使用 Q 来检查是否可以减去该项目。基本上它会产生一个过滤的笛卡尔积。
b([[]], _)->[[]];
b(_, [])-> [[]];
b(OL, Keys)->[Y++[Q] || Y <- b(subtract(Q,OL), Keys), Q <-Keys, len(subtract(Q,OL)) < len(OL)].
但我得到了错误:
变量“Q”未绑定
有什么方法可以在那个地方使用它的价值吗?
减法从另一个列表中过滤字符。 减法([{$a,1}],[{$a, 5},{$b, 1}]) 返回 [{$a, 5},{$b, 1}]。
len() 对每个元组的整数值求和。 len([{$a, 5},{$b, 1}]) 返回 6。
【问题讨论】:
-
您能否提供一个示例,说明您的函数 b 如何将输入转换为输出,就像您对减法和 b 所做的那样?
标签: filter erlang list-comprehension