[erlang-questions] Noob question about records
Rob Elsner
thatsnotright@REDACTED
Sun Apr 26 03:44:13 CEST 2009
Larry,
A few notes:
You have a period (.) where you need a comma (,) for both match lines.
You also need a variable name
add(Money1, Money2) ->
M1 = #money{currency=Cur1, amount=Amt1} = Money1,
M2 = #money{currency=Cur2, amount=Amt2} = Money2,
On Sat, Apr 25, 2009 at 7:36 PM, Larry White <ljw1001@REDACTED> wrote:
> I'm on my second day of erlang and getting a compiler error while
> experimenting with Records. Could someone steer me right?
>
> -module(money).
> -export([add/2]).
>
> -record(money, { currency = usd, amount = 0 }).
>
> add(Money1, Money2) ->
> #money{currency=Cur1, amount=Amt1} = Money1.
> #money{currency=Cur2, amount=Amt2} = Money2.
> %% TODO: Check to see that the currencies are the same and throw
> exception if not
> Total = Amt1 + Amt2.
> #money{currency=Cur1,amount=
> Total}.
>
> The error I get is:
> ./money.erl:9: syntax error before: '#'
> ./money.erl:11: syntax error before: Total
> ./money.erl:12: syntax error before: '#'
>
> The statement " #money{currency=Cur1, amount=Amt1} = Money1." seems to
> work fine from the command line.
>
> Also, I tried a number of variants: using a guard for example in the
> function header, but couldn't figure out the right syntax for two guards :
> when record(Money1, money) ...?... (Money2, money).
>
> Also I tried using C1 = Money1#money.currency. - but the next line caused a
> syntax error.
>
> Finally, apologies if this gets double posted. I sent one about 6 hours ago
> but i don't think my subscription was active then.
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>
More information about the erlang-questions
mailing list