假設有乙個函式f
,輸入乙個int
值,返回乙個string
值,在 c# 中,該函式可以表示為:
func<
int,
string
>
我們可以使用箭頭(→)符號來表示:
f : int → string
箭頭符號是函式式程式設計社群的標準函式符號,與語言無關。
當沒有輸入或沒有輸出(void)時,用()
表示。如果有多個輸入或輸出,則用元組表示。
例如:
func<
string
>
func<
int,
int,
int>
分別表示為:
() → string
(int, int) → int
對於高階函式,可以巢狀表示。
例如ienumerable.where
的簽名:
func
, funcbool
>
, ienumerable
>
// ienumerablewhere(this ienumerablesource, funcpredicate);
可以表示為:
(ienumerable
,(t → bool
)) → ienumerable
純函式是指沒有任何***的函式,除了根據輸入值計算輸出值之外,什麼也不做。而不純函式則可能導致***。
***包括:
純函式擁有許多的好處:
誠實的函式始終履行自己的簽名。
例如如下函式,就是乙個誠實的函式:
public
intsquare
(int n)
=> n * n;
而如下函式則是不誠實的:
public
intsquare
(int n)
因為它可能返回乙個int
值,還可能丟擲異常。
參考:《c# 函式式程式設計》 enrico buonanno 著
函式式程式設計中的基本概念
假設有乙個函式f,輸入乙個int值,返回乙個string值,在 c 中,該函式可以表示為 func我們可以使用箭頭 符號來表示 f int string箭頭符號是函式式程式設計社群的標準函式符號,與語言無關。當沒有輸入或沒有輸出 void 時,用 表示。如果有多個輸入或輸出,則用元組表示。例如 fu...
程式設計基本概念
程式設計基本概念 一 賦值語句 1.c c code int i 1 void main 在c 中,這樣的賦值操作時合法的,int i i,i變數從宣告的那一刻起就是可見的,main 裡的i不是1,因為它與mian 外的i無關,而是乙個未定義的值。2.include using namespace ...
程式設計的基本概念
程式設計的基本概念 高階語言 低階語言 高階語言是簡單的說是需要軟體翻譯成二進位制 低階語言就面向機器的二進位制 寫乙個簡單的程式步驟 1 人們所說的資料結構,就根據任務 人家提的要求 想得到的輸出後輸入的資料,例子 管理用的軟體能輸出學生姓名年齡。就是資料要輸出的,還有輸入的 2 確定怎麼計算 根...