函式式程式設計 顧名思義就是不依賴外界影響而變化,只依靠自身的輸入和輸出來得到自己想要的
例子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 => //
[, ]
改變新建立出來的newarnewarr[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時候都會影響到另乙個值的改變
下面是優化後的
functionisobject(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 而且 演算的函式可以接受函式當...