Implementar un protocolo delegando funciones existentes.
Estoy aprendiendo Elixir modelando un juego de mesa, y tengo este código:
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
La implementación parece más complicada de lo que realmente es. Actualmente,can_handle_move
es soloEnum.empty?
yhandle_move
es soloList.delete
. ¿Tiene Elixir una forma de expresar esto? Algo como:
defimpl Board, for: List do
def can_handle_move = &Enum.empty?/1
def handle_move = &List.delete/2
end
... que no se compila. También he intentado sin eldef
s.