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

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

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

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

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

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

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

函數(shù)式編程是大多數(shù)軟件工程師至少對此不太熟悉的概念。 實(shí)際上,有史以來寫給程序計(jì)算機(jī)的第二種編程語言Lisp完全在功能范式內(nèi)。 通過簡化的定義編程,函數(shù)式編程將數(shù)據(jù)的不變性和數(shù)學(xué)計(jì)算作為優(yōu)先事項(xiàng),而不是傳統(tǒng)上修改存儲在類構(gòu)造函數(shù)中的部分對象。 在現(xiàn)代函數(shù)式編程中,這個想法有些冗長,不一定是一件壞事。 函數(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ù)式語言通常可以更快,而對于數(shù)據(jù)科學(xué)家而言,最重要的是更容易。

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

炫酷的編程語言

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

Julia

Julia很容易成為我一直以來最喜歡的語言。 盡管Julia確實(shí)是功能性的,但它確實(shí)包含一些可變的和面向?qū)ο蟮膶傩裕蛊渚幊唐饋砀臃奖?。Julia作為這樣一種高級語言的速度非???。 它易于鍵入,鍵入正確時,它可以與C一樣快,同時比R和Scala易于閱讀。 通常,不需要花費(fèi)太多時間就可以在Julia中建立模型并對其進(jìn)行訓(xù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的宏是一個真正值得注意的屬性。 宏本身是一項(xiàng)主要的功能性功能,如果正確使用,可以使筆記本編碼真正容易。 應(yīng)該注意的是,Lisp已將自己分為多種語言,包括Scheme,Clojure和(通用)Lisp。 很難理解或估計(jì)第二種高級語言及其功能的影響,但是范圍肯定很大。

R

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

Haskell

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

最后的想法

我的大部分時間都花在函數(shù)式語言(主要是Julia)上,如Github上的筆記本資料庫所顯示的那樣,其中主要包含Julia筆記本。 我喜歡函數(shù)式編程,因?yàn)閷τ谖宜龅氖虑?,它非常適合該規(guī)則。 當(dāng)然,有時候Python構(gòu)造函數(shù)(類)可能對某個特定的工作會更好,但是總的來說,Julia可以完成工作,而且鍵入的方式對我來說非常流暢和高效。 對于其他人而言,功能語言可能無法實(shí)現(xiàn)其目標(biāo),并且對于一生都使用面向?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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1921

    瀏覽量

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

    關(guān)注

    3

    文章

    4260

    瀏覽量

    62233
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    plc編程st語言怎么編

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

    簡述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 ?215次閱讀

    如何提升嵌入編程能力?

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

    PLC常用編程語言哪些

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

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

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

    output函數(shù)怎么用

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

    嵌入open函數(shù)的使用

    嵌入系統(tǒng)是指嵌入到其他設(shè)備或系統(tǒng)中,用于控制和管理硬件資源的計(jì)算機(jī)系統(tǒng)。在嵌入系統(tǒng)中,通常需要與外部設(shè)備進(jìn)行數(shù)據(jù)交互,例如讀取傳感器數(shù)據(jù)、控制執(zhí)行器等。open函數(shù)是C語言標(biāo)準(zhǔn)庫中
    的頭像 發(fā)表于 01-04 15:51 ?537次閱讀

    嵌入C語言的結(jié)構(gòu)特點(diǎn)

    過程中,不論是基于寄存器開發(fā)還是基于庫開發(fā),深入理解和掌握嵌入C語言函數(shù)、指針、結(jié)構(gòu)體是學(xué)習(xí)STM32的關(guān)鍵。嵌入C語言的結(jié)構(gòu)特點(diǎn)如下
    的頭像 發(fā)表于 11-24 16:16 ?587次閱讀
    嵌入<b class='flag-5'>式</b>C<b class='flag-5'>語言</b>的結(jié)構(gòu)特點(diǎn)

    c語言函數(shù)函數(shù)體用什么符號括起來

    函數(shù) 是指將一組能完成一個功能或多個功能的語句放在一起的 代碼結(jié)構(gòu) 。 在 C語言程序 中,至少會包含一個函數(shù),及主函數(shù)main()。本文將詳細(xì)講解關(guān)于
    的頭像 發(fā)表于 11-24 15:52 ?620次閱讀
    c<b class='flag-5'>語言</b>中<b class='flag-5'>函數(shù)</b>的<b class='flag-5'>函數(shù)</b>體用什么符號括起來

    c語言gets函數(shù)可以輸入數(shù)字嗎

    C語言中的gets函數(shù)是用來讀取字符串的,而不是用來讀取數(shù)字的。它會讀取輸入的字符直到遇到換行符或者文件結(jié)束符。因此,如果你嘗試使用gets函數(shù)來讀取數(shù)字,是無法準(zhǔn)確獲取數(shù)字本身的。 首先,讓我們
    的頭像 發(fā)表于 11-24 10:00 ?1311次閱讀

    c語言max函數(shù)在哪個庫

    C語言的max函數(shù)并不屬于標(biāo)準(zhǔn)C庫,它通常是由程序員自己編寫的一個宏定義。max函數(shù)用于比較兩個數(shù)的大小,返回較大的數(shù)值。 為了提供更多詳實(shí)的信息,下面將詳細(xì)介紹C語言中max
    的頭像 發(fā)表于 11-22 10:18 ?3024次閱讀

    c語言max函數(shù)的使用方法

    C語言是一門廣泛使用的編程語言,提供了許多內(nèi)置的函數(shù)來執(zhí)行各種任務(wù)。其中一個非常有用的函數(shù)是max函數(shù)
    的頭像 發(fā)表于 11-22 10:15 ?1.2w次閱讀

    python函數(shù)返回多個參數(shù)

    函數(shù)是程序設(shè)計(jì)中的一個重要概念,在很多編程語言中都存在。函數(shù)可以接受輸入數(shù)據(jù),并且根據(jù)輸入數(shù)據(jù)進(jìn)行一系列操作,最后可以返回一個或多個結(jié)果。Python是一種非常流行的
    的頭像 發(fā)表于 11-21 16:37 ?1052次閱讀

    C語言進(jìn)階之嵌入系統(tǒng)高級C語言編程

    電子發(fā)燒友網(wǎng)站提供《C語言進(jìn)階之嵌入系統(tǒng)高級C語言編程.rar》資料免費(fèi)下載
    發(fā)表于 11-18 10:32 ?1次下載
    C<b class='flag-5'>語言</b>進(jìn)階之嵌入<b class='flag-5'>式</b>系統(tǒng)高級C<b class='flag-5'>語言</b><b class='flag-5'>編程</b>