本文講的是[譯]跌宕起伏的函式式程式設計(軟體編寫)(第一部分),
lambda 表示式中的函式只接收乙個引數。他們是一元的,如果你需要多個引數,函式將會接受乙個輸入返回乙個呼叫下乙個函式的函式,然後繼續這樣。非一元函式(x, y) => x + y
可以被表示為乙個像x => y => x + y
的一元函式。這個把多元函式轉換成一元函式的過程叫做柯里化。
函式是一等公民的,意味著函式可以作為引數傳遞給其他函式,同時函式可以返回函式。
f . g
compose2 = f => g => x => f(g(x))
double = n => n * 2
inc = n => n + 1
compose2(double)(inc)(3)
返回的函式傳入inc
同時再返回乙個新的函式。
再返回的函式傳入3
同時計算f(g(x))
,最後實際上是double(inc(3))
。
x
等於3
同時傳給inc()
。
inc(3)
等於4
。
double(4)
等於8
。
函式返回8
。
lisp 全是由函式組成,函式組合是構造應用非常優雅的方式。
我知道的使用 lisp 的最棒的電腦科學書籍:電腦程式的結構與解釋。
原文發布時間為:2023年4月14日
2020跌宕起伏的計算機推免之路
給自己乙個總結的同時,提供後來者一些投遞院校的思路吧。本科院校 某985,計算機b 成績排名 6 33 綜合排名 3 33 6級 435 科研及獲獎情況 美賽m,以及其他亂七八糟的9個競賽經歷 參與國家級大創,負責一項校級大創。ps 由於疫情等原因,原本打算出國的很多人加入了此次競爭 並由於線上參與...
函式式程式設計中的函式 函式式程式設計的多型
函式式程式設計中的函式 函式式程式設計的多型 儲存了計算上下文和計算過程的特殊值 儲存了計算上下文和計算過程的有輸入輸出的可計算結構。儲存了計算上下文和計算過程的可配置結構 柯里化 函式作為一種特殊的值和結構,可以由更高階的函式對其進行組合 變換 柯里化等操作 函式作為輸入和輸出 本質上都是可配置 ...
函式式程式設計python python的函式式程式設計
函式式程式設計 允許把函式本身作為引數傳入另乙個函式,還允許返回乙個函式!1.高階函式 乙個函式可以接收另乙個函式作為引數,這種函式稱之為高階函式 abs 10 是函式呼叫 abs是函式本身 abs函式名其實是乙個變數名 變數可以指向函式,函式名也是變數名 map map func,seq 函式接收...