Erlang Can';编译包含映射的模块
我正在通过本教程学习Erlang 我无法编译地图示例:Erlang Can';编译包含映射的模块,erlang,Erlang,我正在通过本教程学习Erlang 我无法编译地图示例: -module(color). -export([new/4, blend/2]). -define(is_channel(V), (is_float(V) andalso V >= 0.0 andalso V =< 1.0)). new(R,G,B,A) when ?is_channel(R), ?is_channel(G), ?is_channel(B), ?is_channel(A
-module(color).
-export([new/4, blend/2]).
-define(is_channel(V), (is_float(V) andalso V >= 0.0 andalso V =< 1.0)).
new(R,G,B,A) when ?is_channel(R), ?is_channel(G),
?is_channel(B), ?is_channel(A) ->
#{red => R, green => G, blue => B, alpha => A}.
blend(Src,Dst) ->
blend(Src,Dst,alpha(Src,Dst)).
blend(Src,Dst,Alpha) when Alpha > 0.0 ->
Dst#{
red := red(Src,Dst) / Alpha,
green := green(Src,Dst) / Alpha,
blue := blue(Src,Dst) / Alpha,
alpha := Alpha
};
blend(_,Dst,_) ->
Dst#{
red := 0.0,
green := 0.0,
blue := 0.0,
alpha := 0.0
}.
alpha(#{alpha := SA}, #{alpha := DA}) ->
SA + DA*(1.0 - SA).
red(#{red := SV, alpha := SA}, #{red := DV, alpha := DA}) ->
SV*SA + DV*DA*(1.0 - SA).
green(#{green := SV, alpha := SA}, #{green := DV, alpha := DA}) ->
SV*SA + DV*DA*(1.0 - SA).
blue(#{blue := SV, alpha := SA}, #{blue := DV, alpha := DA}) ->
SV*SA + DV*DA*(1.0 - SA).
执行结果:
1> c(color).
color.erl:9: syntax error before: '{'
color.erl:15: syntax error before: '{'
color.erl:29: syntax error before: '{'
color.erl:32: syntax error before: '{'
color.erl:34: syntax error before: '{'
color.erl:36: syntax error before: '{'
color.erl:3: function new/4 undefined
color.erl:12: function alpha/2 undefined
color.erl:12: function blend/3 undefined
error
读到它可能是文件编码,所以我使用了ascii、utf-8、utf-8-unix,结果相同。语句{red=>R,…}
正在创建一个映射,它是最近添加的Erlang类型
地图是在年引进的。您需要升级VM才能使用它们
您可以为Ubuntu,也可以为多个Erlang版本进行本地/临时安装和管理。语句{red=>R,…}
正在创建一个映射,这是最近添加的Erlang类型
地图是在年引进的。您需要升级VM才能使用它们
您可以选择Ubuntu,也可以选择本地/临时安装和管理多个Erlang版本。[加一]到kerl。这使得选择一个特定版本的Erlang变得非常轻松。这使得选择特定版本的Erlang变得非常轻松。
1> c(color).
color.erl:9: syntax error before: '{'
color.erl:15: syntax error before: '{'
color.erl:29: syntax error before: '{'
color.erl:32: syntax error before: '{'
color.erl:34: syntax error before: '{'
color.erl:36: syntax error before: '{'
color.erl:3: function new/4 undefined
color.erl:12: function alpha/2 undefined
color.erl:12: function blend/3 undefined
error