当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang expand(Expansions, ListIn)用法及代码示例


expand(Expansions, ListIn) -> ListOut
类型:
Expansions = [{Property :: property(), Expansion :: [term()]}]
ListIn = ListOut = [term()]

将特定属性扩展到相应的属性集(或其他术语)。对于 Expansions 中的每对 {Property, Expansion} :如果 EListIn 中与 Property 具有相同键的第一个条目,并且 EProperty 具有等效的范式,则 E 是替换为 Expansion 中的术语,并且任何具有相同键的后续条目都将从 ListIn 中删除。

例如,以下表达式都返回 [fie, bar, baz, fum]

expand([{foo, [bar, baz]}], [fie, foo, fum])
expand([{{foo, true}, [bar, baz]}], [fie, foo, fum])
expand([{{foo, false}, [bar, baz]}], [fie, {foo, false}, fum])

但是,在以下调用中不会进行扩展,因为 {foo, false} 隐藏了 foo

expand([{{foo, true}, [bar, baz]}], [{foo, false}, fie, foo, fum])

请注意,如果扩展时要在结果中保留原始属性项,则它必须包含在扩展列表中。插入的项不会递归扩展。如果 Expansions 包含多个具有相同键的属性,则仅使用第一个出现的属性。

也可以看看normalize/2.

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 expand(Expansions, ListIn) -> ListOut。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。