為什么函數(shù)式編程正在上升
編程范例是一個術(shù)語,用于描述編寫命令的方法。 語言的真正思想是建立在其編程范例之上的。 最著名的三種范例是面向?qū)ο蟮某绦蛟O(shè)計,命令式程序設(shè)計和函數(shù)式程序設(shè)計。 任何一種意識形態(tài)都不會比另一種更好,因為通常它是關(guān)于使用正確的工具完成工作的。
函數(shù)式編程是大多數(shù)軟件工程師至少對此不太熟悉的概念。 實際上,有史以來寫給程序計算機的第二種編程語言Lisp完全在功能范式內(nèi)。 通過簡化的定義編程,函數(shù)式編程將數(shù)據(jù)的不變性和數(shù)學(xué)計算作為優(yōu)先事項,而不是傳統(tǒng)上修改存儲在類構(gòu)造函數(shù)中的部分對象。 在現(xiàn)代函數(shù)式編程中,這個想法有些冗長,不一定是一件壞事。 函數(shù)語言的可變性帶來了更多實用性,我敢說:
功能性
功能編程。 考慮到這一點,函數(shù)式編程不限于函數(shù)式語言。 例如,Python具有功能特性。 盡管從傳統(tǒng)上講,函數(shù)式編程已經(jīng)有了令人難以置信的不同,但是函數(shù)式和面向?qū)ο蟮姆独坪跖c大多數(shù)用于數(shù)據(jù)科學(xué)的語言有點相似。
我們做的偉大的事情
大多數(shù)功能語言的標題均帶有"統(tǒng)計"字樣。 這很方便,因為數(shù)據(jù)科學(xué)家非常像統(tǒng)計學(xué)家,只需要具備編程和機器學(xué)習(xí)技能即可。 函數(shù)式語言通常可以更快,而對于數(shù)據(jù)科學(xué)家而言,最重要的是更容易。
相信我,您不想瀏覽C代碼,因為您的準確性有點低。 大多數(shù)功能語言都是完全可讀的,并且很容易鍵入和掌握。 對于某些人來說,知道函數(shù)式編程是許多Internet上最古老的大數(shù)據(jù)管道的基礎(chǔ),可能會令人感到意外。 實際上,隨著機器學(xué)習(xí)和統(tǒng)計計算的興起,函數(shù)式編程實際上變得越來越流行。
炫酷的編程語言
有許多很酷的統(tǒng)計語言,其中許多語言具有與其他更傳統(tǒng)的特征交織在一起。 在函數(shù)式編程語言下,我非常喜歡很多很酷的語言。
Julia
Julia很容易成為我一直以來最喜歡的語言。 盡管Julia確實是功能性的,但它確實包含一些可變的和面向?qū)ο蟮膶傩裕蛊渚幊唐饋砀臃奖恪ulia作為這樣一種高級語言的速度非常快。 它易于鍵入,鍵入正確時,它可以與C一樣快,同時比R和Scala易于閱讀。 通常,不需要花費太多時間就可以在Julia中建立模型并對其進行訓(xùn)練,并且由于語言簡單易行且ML速度快,這增加了使用Julia的好處。 在某些情況下,例如在我的ML包Lathe中,機器學(xué)習(xí)可以用更少的行完成,并且構(gòu)造函數(shù)的屬性可以使用參數(shù)多態(tài)性更輕松地進行突變。
Lisp
盡管Lisp不一定以其數(shù)據(jù)科學(xué)領(lǐng)域而聞名,但它仍然是一種非常酷的語言。 Lisp和Julia一樣,使編程變得非常容易和方便。 Lisp的宏和Julia的宏是一個真正值得注意的屬性。 宏本身是一項主要的功能性功能,如果正確使用,可以使筆記本編碼真正容易。 應(yīng)該注意的是,Lisp已將自己分為多種語言,包括Scheme,Clojure和(通用)Lisp。 很難理解或估計第二種高級語言及其功能的影響,但是范圍肯定很大。
R
現(xiàn)在,我們迎接我們的好朋友R. R傳統(tǒng)上是一種面向函數(shù)的語言,但是像大多數(shù)其他語言一樣(或已經(jīng)成為)多范式,這意味著它從每個特定的編程范式中進行選擇。 很好,因為它使R具有可變性的優(yōu)點。 R起源于S語言,并且一直專注于統(tǒng)計計算。
Haskell
Haskell與我上面提到的多種范式語言完全不同,Haskell以純粹的功能而自豪。 我無法代表Haskell,與清單上的其他語言不同,我從未使用過。 但是據(jù)我所知,Haskell當(dāng)然是一種很酷的語言。 我對學(xué)習(xí)Haskell的關(guān)注純粹是局限性。 正如我所討論的那樣,大多數(shù)現(xiàn)代語言都是多范式的,這使它們可以有效地壓縮需要壓縮的任何錯誤,而無需創(chuàng)建新的代碼庫。
最后的想法
我的大部分時間都花在函數(shù)式語言(主要是Julia)上,如Github上的筆記本資料庫所顯示的那樣,其中主要包含Julia筆記本。 我喜歡函數(shù)式編程,因為對于我所做的事情,它非常適合該規(guī)則。 當(dāng)然,有時候Python構(gòu)造函數(shù)(類)可能對某個特定的工作會更好,但是總的來說,Julia可以完成工作,而且鍵入的方式對我來說非常流暢和高效。 對于其他人而言,功能語言可能無法實現(xiàn)其目標,并且對于一生都使用面向?qū)ο笳Z言的人來說可能很難學(xué)習(xí)。 歸根結(jié)底,語言是一種選擇,大多數(shù)語言都有開發(fā)人員,大多數(shù)語言都有優(yōu)缺點。
-
編程語言
+關(guān)注
關(guān)注
10文章
1955瀏覽量
36385 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4377瀏覽量
64540
發(fā)布評論請先 登錄
嵌入式編程設(shè)計模式
gitee 支持的編程語言有哪些
HP3324A合成函數(shù)/掃描發(fā)生器操作和編程手冊
如何快速入門HAL庫編程 HAL庫與裸機編程的比較
編程語言的誤區(qū)與常見問題
C語言中的socket編程基礎(chǔ)
MCU編程語言和開發(fā)環(huán)境介紹
Python常用函數(shù)大全
plc編程語言編程相關(guān)技巧有哪些
plc編程st語言怎么編
簡述socket編程中的常用函數(shù)
鴻蒙原生應(yīng)用元服務(wù)開發(fā)-初識倉頡開發(fā)語言
面試常考+1:函數(shù)指針與指針函數(shù)、數(shù)組指針與指針數(shù)組

評論