1

数値をレコードに格納し、関数が実行されるたびに値 X をその数値に追加する関数を作成しようとしています。

Value: 5
Run Function (Add One):   1
Value should be: 6
Run Function (Add One):   1
value should be 7

私はレコードを使用しようとしました:

-record(adder,{value :: integer()}).

---function 
   Number = random:uniform(6),
        L=#added{value = Number + #added.value}.

毎回値をリセットするため、これは機能しません。助言がありますか?

4

2 に答える 2

0
-record(adder, {value = 5}).

add(Value) ->
    add(#adder{}, Value).

add(#adder{value =V} = Adder, Value) ->
    Adder#adder{value = V + Value}.

test() ->
  R1 = add(1),
  io:format("~p~n", [R1]),
  R2 = add(R1, 10),
  io:format("~p~n", [R2]).

これが実行の出力ですtest:test().

6> c(test).
{ok,test}
7> test:test().
{adder,6}
{adder,16}
ok
于 2015-05-20T05:51:16.047 に答える