日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

函数式编程概念

發布時間:2023/11/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数式编程概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是函數式編程

簡單地說,函數式編程通過使用函數,將值轉換成抽象單元,接著用于構建軟件系統。

面向對象VS函數式編程

面向對象編程

面向對象編程認為一切事物皆對象,將現實世界的事物抽象成對象,現實世界中的關系抽象成類、繼承,幫助人們實現對現實世界的抽象和數字建模。面向對象編程有三個特征,分別是封裝,繼承和多態。面向對象的主要目標是問題的分解,如下圖所示:

函數式編程

函數式編程以函數為抽象單元和行為單元,實現數據的封裝和隱藏,與面向對象將問題分解成多組“名詞”或對象不同,函數式方法將相同的問題分解成多組“動詞”或函數。函數式編程也可以通過組合來構造更大的函數,實現抽象的行為。如下圖所示:一種函數式的部件組成一個完整的系統的方法,就是取一個“值”,然后將它逐漸“改變”,通過一個原始的或者組合的函數,成為另外一個值。

兩者差異

在一個面向對象的系統內部,對象之間的交互會引起各種對象內部狀態的變化,而整個系統的變化是由許多小的,細微的變化混合形成的,這些相互關聯的狀態變化形成了一個概念上的“變化網”。但我們需要跟蹤這邊變化的時候,就需要了解彼此之間這種微妙且廣泛的變化。
相比之下,函數式系統則努力減少可見狀態的修改。向一個遵循函數式的系統添加新功能就成了理解如何在局限的上下文環境中,無破壞地進行數據轉換。函數式編程以命令的方式構建系統,并通過顯性的狀態來改變縮減到最小來變得更加模塊化。

例子

function demo{ return function(array){return fun.apply(null,array);//返回一個函數}}

總結

總的來說,函數式編程包括以下四個方面:

  • 確定抽象函數,并為其構造函數
  • 利用已有的函數來構造更為復雜的函數
  • 通過將函數傳給其他的函數來構建更為復雜的抽象。
  • 總結

    以上是生活随笔為你收集整理的函数式编程概念的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。