函式式程式設計

2022-09-06 06:00:11 字數 1379 閱讀 7755

函式式程式設計 顧名思義就是不依賴外界影響而變化,只依靠自身的輸入和輸出來得到自己想要的

例子1

var arr = 

function

add(_arr)

var newarr =

for(var i = 0; i < _arr.length; i++)

newarr.push(obj)

return

newarr

}var newarr =add(arr)

arr => //

newarr => //

[, ]

改變新建立出來的newar

newarr[0].name = 'ccc'

*****>//

"ccc"

列印arr

arr[0].name //

會發現輸出也是"ccc"

-------改變原來的 arr 的name值

arr[0].name='aaaaaa'

*****==> //

'aaaaaa'

列印newarr

newarr[0].name //

會發現輸出的結構是arr改變後的值 即 'aaaaaa'

上面乙個例子已經很接近純函式了,但是,如果改變改變arr或newarr共同的值 name時候都會影響到另乙個值的改變

下面是優化後的

function

isobject(obj)

const deepclone = (source, hash = new weakmap()) =>;

hash.set(source, target);

for (key in

source)

}return

target;

};var arrs = ;

function

add(_arr) ;

var newarrs =;

for (var i = 0; i < _arr.length; i++)

newarrs.push(obj);

return

newarrs;

}

例子2:  使用map來建立新的值

var rooms = ['h1','h2','h3','h4']

var newrooms = rooms.map(function

(rm)

else

})rooms => //

['h1','h2','h3','h4']

newrooms => //

["h1", "h2", "h5", "h4"]

函式式程式語言python 函式式程式設計

函式是python內建支援的一種封裝,我們通過把大段 拆成函式,通過一層一層的函式呼叫,就可以把複雜任務分解成簡單的任務,這種分解可以稱之為面向過程的程式設計。函式就是面向過程的程式設計的基本單元。而函式式程式設計 請注意多了乙個 式 字 functional programming,雖然也可以歸結...

函式式程式設計

最近在看一些關於js方面的東東,除了些ajax的基本應用,還了解了些函式式程式設計 fp 的東東。雖然以前也玩過幾天lisp的,不過因為當時完全對fp的東西沒有概念,壓根就不知道原來這是list那一族最大的特性之一 另外我知道的還有個是gc,orz.光注意那些詭異的 表 去了。總結一下,傳統上認為f...

函式式程式設計

維基百科 函式式程式設計 英語 functional programming 或者函式程式設計,又稱泛函程式設計,是一種程式設計范型,它將計算機運算視為數學上的函式計算,並且避免使用程式狀態以及易變物件。函式程式語言最重要的基礎是 演算 lambda calculus 而且 演算的函式可以接受函式當...