函數式編程lua

函數式編程的本質
函數式編程中的函數這個術語不是指計算機中的函數(實際上是Subroutine),而是指數學中的函數,即自變量的映射。也就是說一個函數的值僅決定於函數參數的值,不依賴其他狀態。比如sqrt(x)函數計算x的平方根,只要x不變,不論什麼時候調用,調用幾次,值都是不變的。
在函數式語言中,函數作爲一等公民,可以在任何地方定義,在函數內或函數外,可以作爲函數的參數和返回值,可以對函數進行組合。

function makeEnscapeHandler(func, preprocess)
	return function(num)
  		num = preprocess(num)
  		func(num)
	end
end
local function plusOneFunc(num)
	return num+1
end
local printPlusOne = makeEnscapeHandler(print, plusOneFunc)
printPlusOne(1)

具體思想參考:https://zhuanlan.zhihu.com/c_111494153

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章