我正在努力重新實現Elixir中的NumPy/SciPy的一些基本線性代數功能。別擔心,我知道這是一個有點輕浮的努力。我只是爲了好玩而做。爲Elixir函數定製typespec,以確保將兩個列表的維度用作函數的參數
目前我已經有一堆工作函數,但特別是與向量我想添加一些自定義行爲。 最簡單的例子就是這個。比方說,我有一個函數add_vectors/2
:
def add_vectors(vec_1, vec_2) do
for {el_1, el_2} <- Enum.zip(vec_1, vec_2), do: el_1 + el_2
end
我可以很容易地與裝飾它:
@spec add_vectors(list(), list()) :: list()
但是,這只是檢查該類型只是事實的清單。 我知道你可以在elixir中定義自定義類型規範,但是我不想編寫一個宏來定義它的任何維度N. 有沒有簡單的方法來做到這一點?