Erlang Can';编译包含映射的模块

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

我正在通过本教程学习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) ->
    #{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