FunctionName(Pattern1… PatternN) -> Body;
在這裡,
FunctionName ? 函式名稱是一個原子(唯一性)
Pattern1… PatternN ? 每個引數都是一個模式。引數的個數N是函式的引數數量。函式名稱名稱是由模組、函式名和定義的引數數量是唯一的。即,具有相同的名稱並在相同的模組中的兩個函式,但它們具有不同引數數量也算是兩種不同的函式。
Body ? 一個子句主體是由以逗號分隔的表示式序列組成 (,)
-module(helloworld). -export([add/2,start/0]). add(X,Y) -> Z = X+Y, io:fwrite("~w~n",[Z]). start() -> add(5,6).
11
-module(helloworld). -export([start/0]). start() -> Fn = fun() -> io:fwrite("Anonymous Function") end, Fn().
Anonymous Function
-module(helloworld). -export([add/2,add/3,start/0]). add(X,Y) -> Z = X+Y, io:fwrite("~w~n",[Z]). add(X,Y,Z) -> A = X+Y+Z, io:fwrite("~w~n",[A]). start() -> add(5,6), add(5,6,6).
11 17
FunctionName(Pattern1… PatternN) [when GuardSeq1]-> Body;
在這裡,
FunctionName ? 函式名稱是一個原子(唯一性)
Pattern1… PatternN ? 每個引數都是一個模式。引數的個數N是函式的引數數量。函式名稱名稱是由模組、函式名和定義的引數數量是唯一的。即,具有相同的名稱並在相同的模組中的兩個函式,但它們具有不同引數數量也算是兩種不同的函式。
Body ? 一個子句主體是由以逗號分隔的表示式序列組成 (,)
GuardSeq1 ? 當函式被呼叫它獲取計算的表示式。
-module(helloworld). -export([add/1,start/0]). add(X) when X>3 -> io:fwrite("~w~n",[X]). start() -> add(4).
4