我有这个问题中的一个单线 - 此长生不老药表达式的正确语法是什么?
|> (fn l ->[?[, Enum.map(l, &([inspect(&1, limit: :infinity), ?n]))
|> Enum.intersperse(?,), ?]] end).()
是否有长生不老药中有一个工具可以显示其评估方式的细分?
由于您面临的主要问题似乎是在识别无括号的函数呼叫的论点是在复杂的表达式中,因此您可以将字符串解析为Elixir AST(Code.string_to_quoted!/1
(和返回(Macro.to_string/1
(,它将在有函数调用的任何地方添加显式括号。
iex(1)> "a B.c |> D.e + f g h + i" |> Code.string_to_quoted! |> Macro.to_string
"a(B.c() |> D.e() + f(g(h + i)))"