有没有办法让功能“类型”在Elixir中实现协议?我正在玩一个自定义的Functor
协议,并想知道我是否可以使功能实现它(忽略Elixir类型系统的所有限制)。“功能”可以在Elixir中实现协议吗?
实现(如果function
其中A型)将
defimpl Category.Functor, for: function do
def fmap(f, g), do: &(g.(f.(x))
end
既然你可以做
f_2x_plus_1 = &(&1 * 2) |> Functor.fmap(&(&1 + 1))
f_2x_plus_1.(1) == 3
不,我想用这个事情的严重性,只是想知道。
以下是Elixir中的类别库https://github.com/robot-overlord/witchcraft这可能有助于了解他们已经完成的工作。 – CoderDennis