传递多个参数

Jac*_*nor 2 variables erlang module function

我正在尝试将现有的C函数转换为Erlang,但是在理解它是如何工作方面有点麻烦.假设我在C中有以下功能:

    void(int *x,int *y,int z,int a)
    {
     if(z<a)
      {
     *x = z + a;
     *y = z - a;
      }
     }
Run Code Online (Sandbox Code Playgroud)

我如何在Erlang中编写类似的东西作为功能模块?我明白,通常你编写你的函数,它会返回一个操作.但是,如果我必须对多个变量进行计算呢?

use*_*836 8

你可能会返回一个元组:{X,Y}

这是一个函数,它将输入的两个值加倍:

-module(my_module).
-export([doubleus/2]).

doubleus(X, Y) ->
    {X*2, Y*2}.
Run Code Online (Sandbox Code Playgroud)

在shell中:

1> c(my_module).
{ok, my_module}
2> {A, B} = my_module:doubleus(3,4).
{6, 8}
Run Code Online (Sandbox Code Playgroud)