0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么函數(shù)式編程正在上升函數(shù)式編程語言有哪些

Wildesbeast ? 來源:今日頭條 ? 作者:聞數(shù)起舞 ? 2020-02-24 15:06 ? 次閱讀

為什么函數(shù)式編程正在上升

編程范例是一個(gè)術(shù)語,用于描述編寫命令的方法。 語言的真正思想是建立在其編程范例之上的。 最著名的三種范例是面向?qū)ο蟮某绦蛟O(shè)計(jì),命令式程序設(shè)計(jì)和函數(shù)式程序設(shè)計(jì)。 任何一種意識(shí)形態(tài)都不會(huì)比另一種更好,因?yàn)橥ǔK顷P(guān)于使用正確的工具完成工作的。

函數(shù)式編程是大多數(shù)軟件工程師至少對(duì)此不太熟悉的概念。 實(shí)際上,有史以來寫給程序計(jì)算機(jī)的第二種編程語言Lisp完全在功能范式內(nèi)。 通過簡(jiǎn)化的定義編程,函數(shù)式編程將數(shù)據(jù)的不變性和數(shù)學(xué)計(jì)算作為優(yōu)先事項(xiàng),而不是傳統(tǒng)上修改存儲(chǔ)在類構(gòu)造函數(shù)中的部分對(duì)象。 在現(xiàn)代函數(shù)式編程中,這個(gè)想法有些冗長(zhǎng),不一定是一件壞事。 函數(shù)語言的可變性帶來了更多實(shí)用性,我敢說:

功能性

功能編程。 考慮到這一點(diǎn),函數(shù)式編程不限于函數(shù)式語言。 例如,Python具有功能特性。 盡管從傳統(tǒng)上講,函數(shù)式編程已經(jīng)有了令人難以置信的不同,但是函數(shù)式和面向?qū)ο蟮姆独坪跖c大多數(shù)用于數(shù)據(jù)科學(xué)的語言有點(diǎn)相似。

我們做的偉大的事情

大多數(shù)功能語言的標(biāo)題均帶有"統(tǒng)計(jì)"字樣。 這很方便,因?yàn)閿?shù)據(jù)科學(xué)家非常像統(tǒng)計(jì)學(xué)家,只需要具備編程和機(jī)器學(xué)習(xí)技能即可。 函數(shù)式語言通常可以更快,而對(duì)于數(shù)據(jù)科學(xué)家而言,最重要的是更容易。

相信我,您不想瀏覽C代碼,因?yàn)槟臏?zhǔn)確性有點(diǎn)低。 大多數(shù)功能語言都是完全可讀的,并且很容易鍵入和掌握。 對(duì)于某些人來說,知道函數(shù)式編程是許多Internet上最古老的大數(shù)據(jù)管道的基礎(chǔ),可能會(huì)令人感到意外。 實(shí)際上,隨著機(jī)器學(xué)習(xí)和統(tǒng)計(jì)計(jì)算的興起,函數(shù)式編程實(shí)際上變得越來越流行。

炫酷的編程語言

有許多很酷的統(tǒng)計(jì)語言,其中許多語言具有與其他更傳統(tǒng)的特征交織在一起。 在函數(shù)式編程語言下,我非常喜歡很多很酷的語言。

Julia

Julia很容易成為我一直以來最喜歡的語言。 盡管Julia確實(shí)是功能性的,但它確實(shí)包含一些可變的和面向?qū)ο蟮膶傩裕蛊渚幊唐饋砀臃奖?。Julia作為這樣一種高級(jí)語言的速度非常快。 它易于鍵入,鍵入正確時(shí),它可以與C一樣快,同時(shí)比R和Scala易于閱讀。 通常,不需要花費(fèi)太多時(shí)間就可以在Julia中建立模型并對(duì)其進(jìn)行訓(xùn)練,并且由于語言簡(jiǎn)單易行且ML速度快,這增加了使用Julia的好處。 在某些情況下,例如在我的ML包Lathe中,機(jī)器學(xué)習(xí)可以用更少的行完成,并且構(gòu)造函數(shù)的屬性可以使用參數(shù)多態(tài)性更輕松地進(jìn)行突變。

Lisp

盡管Lisp不一定以其數(shù)據(jù)科學(xué)領(lǐng)域而聞名,但它仍然是一種非??岬恼Z言。 Lisp和Julia一樣,使編程變得非常容易和方便。 Lisp的宏和Julia的宏是一個(gè)真正值得注意的屬性。 宏本身是一項(xiàng)主要的功能性功能,如果正確使用,可以使筆記本編碼真正容易。 應(yīng)該注意的是,Lisp已將自己分為多種語言,包括Scheme,Clojure和(通用)Lisp。 很難理解或估計(jì)第二種高級(jí)語言及其功能的影響,但是范圍肯定很大。

R

現(xiàn)在,我們迎接我們的好朋友R. R傳統(tǒng)上是一種面向函數(shù)的語言,但是像大多數(shù)其他語言一樣(或已經(jīng)成為)多范式,這意味著它從每個(gè)特定的編程范式中進(jìn)行選擇。 很好,因?yàn)樗筊具有可變性的優(yōu)點(diǎn)。 R起源于S語言,并且一直專注于統(tǒng)計(jì)計(jì)算。

Haskell

Haskell與我上面提到的多種范式語言完全不同,Haskell以純粹的功能而自豪。 我無法代表Haskell,與清單上的其他語言不同,我從未使用過。 但是據(jù)我所知,Haskell當(dāng)然是一種很酷的語言。 我對(duì)學(xué)習(xí)Haskell的關(guān)注純粹是局限性。 正如我所討論的那樣,大多數(shù)現(xiàn)代語言都是多范式的,這使它們可以有效地壓縮需要壓縮的任何錯(cuò)誤,而無需創(chuàng)建新的代碼庫。

最后的想法

我的大部分時(shí)間都花在函數(shù)式語言(主要是Julia)上,如Github上的筆記本資料庫所顯示的那樣,其中主要包含Julia筆記本。 我喜歡函數(shù)式編程,因?yàn)閷?duì)于我所做的事情,它非常適合該規(guī)則。 當(dāng)然,有時(shí)候Python構(gòu)造函數(shù)(類)可能對(duì)某個(gè)特定的工作會(huì)更好,但是總的來說,Julia可以完成工作,而且鍵入的方式對(duì)我來說非常流暢和高效。 對(duì)于其他人而言,功能語言可能無法實(shí)現(xiàn)其目標(biāo),并且對(duì)于一生都使用面向?qū)ο笳Z言的人來說可能很難學(xué)習(xí)。 歸根結(jié)底,語言是一種選擇,大多數(shù)語言都有開發(fā)人員,大多數(shù)語言都有優(yōu)缺點(diǎn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1949

    瀏覽量

    34853
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4344

    瀏覽量

    62813
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    gitee 支持的編程語言哪些

    Gitee(碼云)是一個(gè)基于 Git 的代碼托管和研發(fā)協(xié)作平臺(tái),類似于 GitHub 和 GitLab。它支持多種編程語言,允許開發(fā)者托管和管理代碼,進(jìn)行版本控制,以及協(xié)作開發(fā)。以下是一些
    的頭像 發(fā)表于 01-06 09:50 ?94次閱讀

    如何快速入門HAL庫編程 HAL庫與裸機(jī)編程的比較

    如何快速入門HAL庫編程 要快速入門HAL庫編程,可以遵循以下步驟: 了解基礎(chǔ)知識(shí) : 掌握C語言編程基礎(chǔ),包括變量、數(shù)據(jù)類型、函數(shù)、指針等
    的頭像 發(fā)表于 12-02 11:39 ?377次閱讀

    C語言中的socket編程基礎(chǔ)

    Socket編程簡(jiǎn)介 Socket是一種通信機(jī)制,允許程序之間進(jìn)行通信。在C語言中,socket編程是網(wǎng)絡(luò)編程的基礎(chǔ)。通過使用socket,程序可以發(fā)送和接收數(shù)據(jù),實(shí)現(xiàn)不同計(jì)算機(jī)之間的
    的頭像 發(fā)表于 11-01 16:51 ?392次閱讀

    單片機(jī)編程語言哪些選擇

    常用的單片機(jī)編程語言,以及它們的特點(diǎn)和應(yīng)用場(chǎng)景: 1. C語言 特點(diǎn) :C語言是一種通用的編程語言
    的頭像 發(fā)表于 11-01 14:13 ?801次閱讀

    MCU編程語言和開發(fā)環(huán)境介紹

    微控制器單元(Microcontroller Unit,簡(jiǎn)稱MCU)是嵌入系統(tǒng)的核心,廣泛應(yīng)用于各種電子產(chǎn)品中。隨著技術(shù)的發(fā)展,MCU編程語言和開發(fā)環(huán)境也在不斷進(jìn)步,以適應(yīng)不同的應(yīng)用需求。 1.
    的頭像 發(fā)表于 11-01 11:51 ?930次閱讀

    plc編程語言編程相關(guān)技巧哪些

    PLC(可編程邏輯控制器)編程語言及相關(guān)編程技巧是工業(yè)自動(dòng)化領(lǐng)域中不可或缺的知識(shí)。 一、PLC編程語言
    的頭像 發(fā)表于 10-21 16:56 ?404次閱讀

    plc編程st語言怎么編

    控制。下面是一個(gè)基本的ST語言編程指南,包括如何開始編寫一個(gè)簡(jiǎn)單的程序。 1. 基本結(jié)構(gòu) ST程序通常包含變量聲明、函數(shù)(或過程)定義和主程序塊。 變量聲明 :在程序開始處聲明所有使用的變量,包括它們的類型和初始值(如果有的話)
    的頭像 發(fā)表于 08-25 10:05 ?1370次閱讀

    簡(jiǎn)述socket編程中的常用函數(shù)

    Socket編程是一種基于TCP/IP協(xié)議的網(wǎng)絡(luò)編程技術(shù),它允許應(yīng)用程序通過網(wǎng)絡(luò)進(jìn)行通信。在Socket編程中,許多常用的函數(shù),它們用于創(chuàng)
    的頭像 發(fā)表于 08-16 10:49 ?433次閱讀

    PLC的編程方式及編程語言

    在工業(yè)自動(dòng)化領(lǐng)域,PLC(Programmable Logic Controller,可編程邏輯控制器)因其強(qiáng)大的控制功能和靈活的編程方式而得到了廣泛應(yīng)用。PLC的編程方式和編程
    的頭像 發(fā)表于 06-27 14:08 ?854次閱讀

    如何提升嵌入編程能力?

    如何提升嵌入編程能力? 要提升嵌入編程的能力,可以從以下幾點(diǎn)學(xué)習(xí): 1. 理解硬件:熟悉你正在編程的硬件平臺(tái),包括微控制器、處理器、內(nèi)存
    發(fā)表于 06-21 10:01

    PLC常用編程語言哪些

    在工業(yè)自動(dòng)化領(lǐng)域,PLC(Programmable Logic Controller,可編程邏輯控制器)作為一種核心控制設(shè)備,其編程語言的選擇對(duì)于控制系統(tǒng)的設(shè)計(jì)、開發(fā)和維護(hù)具有重要影響。PLC的
    的頭像 發(fā)表于 06-14 16:58 ?1626次閱讀

    C語言函數(shù)指針六大應(yīng)用場(chǎng)景詳解

    函數(shù)指針是一種非常強(qiáng)大的編程工具,它可以讓我們以更加靈活的方式編寫程序。在本文中,我們將介紹 6 個(gè)函數(shù)指針的高級(jí)應(yīng)用場(chǎng)景,并貼出相應(yīng)的代碼案例和解釋。
    的頭像 發(fā)表于 04-23 18:19 ?927次閱讀

    PHP用戶定義函數(shù)詳細(xì)講解

    描述 在所有編程和腳本語言中,函數(shù)是可以在程序中重復(fù)使用的語句塊。在 PHP 中,函數(shù)的概念與另一種語言(如“C”)中的概念相同。標(biāo)準(zhǔn) PH
    的頭像 發(fā)表于 03-20 14:27 ?427次閱讀

    回調(diào)函數(shù)(callback)是什么?回調(diào)函數(shù)的實(shí)現(xiàn)方法

    回調(diào)函數(shù)是一種特殊的函數(shù),它作為參數(shù)傳遞給另一個(gè)函數(shù),并在被調(diào)用函數(shù)執(zhí)行完畢后被調(diào)用。回調(diào)函數(shù)通常用于事件處理、異步
    發(fā)表于 03-12 11:46 ?3070次閱讀

    output函數(shù)怎么用

    output 函數(shù)是一個(gè)通用的術(shù)語,并不特指某個(gè)具體的編程語言或軟件工具。 如果你在使用 Python 編程語言,那么可能是指 print
    的頭像 發(fā)表于 02-23 14:21 ?1296次閱讀