Implementieren eines Protokolls durch Delegieren an vorhandene Funktionen

Ich lerne Elixir, indem ich ein Brettspiel modelliere, und ich habe diesen Code:

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

Die Implementierung sieht komplizierter aus als sie wirklich ist. Tatsächlich,can_handle_move ist nurEnum.empty? undhandle_move ist nurList.delete. Hat Elixir eine Möglichkeit, dies auszudrücken? So etwas wie:

defimpl Board, for: List do
  def can_handle_move = &Enum.empty?/1
  def handle_move = &List.delete/2
end

... was nicht kompiliert. Ich habe es auch ohne versuchtdefs.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage