【发布时间】:2013-08-14 12:44:43
【问题描述】:
我正在通过为棋盘游戏建模来学习 Elixir,并且我有以下代码:
defprotocol Board do
def can_handle_move(self)
def handle_move(self, move)
end
defimpl Board, for: List do
def can_handle_move(self), do: Enum.empty?(self)
def handle_move(self, move), do: List.delete(self, move)
end
实现看起来比实际更复杂。实际上,can_handle_move 只是 Enum.empty? 而handle_move 只是 List.delete。 Elixir 有办法表达这一点吗?比如:
defimpl Board, for: List do
def can_handle_move = &Enum.empty?/1
def handle_move = &List.delete/2
end
...无法编译。我也试过没有defs。
【问题讨论】:
标签: elixir