FunctionName(Pattern1… PatternN) -> Body;
在這里,
FunctionName ? 函數(shù)名稱是一個(gè)原子(唯一性)
Pattern1… PatternN ? 每個(gè)參數(shù)都是一個(gè)模式。參數(shù)的個(gè)數(shù)N是函數(shù)的參數(shù)數(shù)量。函數(shù)名稱名稱是由模塊、函數(shù)名和定義的參數(shù)數(shù)量是唯一的。即,具有相同的名稱并在相同的模塊中的兩個(gè)函數(shù),但它們具有不同參數(shù)數(shù)量也算是兩種不同的函數(shù)。
Body ? 一個(gè)子句主體是由以逗號(hào)分隔的表達(dá)式序列組成 (,)
-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 ? 函數(shù)名稱是一個(gè)原子(唯一性)
Pattern1… PatternN ? 每個(gè)參數(shù)都是一個(gè)模式。參數(shù)的個(gè)數(shù)N是函數(shù)的參數(shù)數(shù)量。函數(shù)名稱名稱是由模塊、函數(shù)名和定義的參數(shù)數(shù)量是唯一的。即,具有相同的名稱并在相同的模塊中的兩個(gè)函數(shù),但它們具有不同參數(shù)數(shù)量也算是兩種不同的函數(shù)。
Body ? 一個(gè)子句主體是由以逗號(hào)分隔的表達(dá)式序列組成 (,)
GuardSeq1 ? 當(dāng)函數(shù)被調(diào)用它獲取計(jì)算的表達(dá)式。
-module(helloworld). -export([add/1,start/0]). add(X) when X>3 -> io:fwrite("~w~n",[X]). start() -> add(4).
4