我正在尝试定义一个匿名函数来执行点积,我可以将其编码为私有函数,没有任何问题,但我正在努力解决匿名函数语法。
我知道我可以以不同的方式实现这一点,但我试图了解如何使用模式匹配和递归来定义匿名函数。
这是我当前的实现
dot = fn
[i|input],[w|weights], acc -> dot.(input,weights,i*w+acc)
[],[bias],acc -> acc + bias
end
我在编译时收到此错误:
function dot/0 undefined
有什么提示吗?这是不可能的吗?
Elixir 中的匿名函数不可能重复出现。
Erlang 17(目前是候选版本)为 Erlang 添加了这种可能性,我们计划很快利用它。目前,最好的方法是定义一个模块函数并将其传递:
def neural_bias([i|input],[w|weights], acc) do
neural(input,weights,i*w+acc)
end
def neural_bias([], [bias], acc) do
acc + bias
end
进而:
&neural_bias/3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)