2 elixir
我有一个"结构"列表.我正在Enum.map(...)修改它们.我想要的是仅以稍微不同的方式修改第一个元素,其余的应该以标准方式修改.最好的方法是什么?
我尝试用一系列数字压缩我的结构列表,对于这么简单的任务看起来异常复杂.
假设你有一个list和两个功能modify1,并modify2分别,你可能会在列表分裂成head和tail,应用您的转换和胶水列表回:
with [h | t] <- list,
h <- modify1.(h),
t <- Enum.map(& modify2/1),
do: [h | t]
Run Code Online (Sandbox Code Playgroud)
另一个选择是散布呼叫地图,呼叫Enum.with_index/1:
list
|> Enum.with_index()
|> Enum.map(fn
{h, 0} -> modify1.(h)
{t, _} -> modify2.(t)
end)
Run Code Online (Sandbox Code Playgroud)