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ù)式編程語(yǔ)言有哪些

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

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

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

函數(shù)式編程是大多數(shù)軟件工程師至少對(duì)此不太熟悉的概念。 實(shí)際上,有史以來(lái)寫給程序計(jì)算機(jī)的第二種編程語(yǔ)言Lisp完全在功能范式內(nèi)。 通過(guò)簡(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ù)語(yǔ)言的可變性帶來(lái)了更多實(shí)用性,我敢說(shuō):

功能性

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

我們做的偉大的事情

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

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

炫酷的編程語(yǔ)言

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

Julia

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

R

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

Haskell

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

最后的想法

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

    關(guān)注

    10

    文章

    1929

    瀏覽量

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

    關(guān)注

    3

    文章

    4284

    瀏覽量

    62325
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

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

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

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

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

    plc編程st語(yǔ)言怎么編

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

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

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

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

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

    output函數(shù)怎么用

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

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

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

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

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

    c語(yǔ)言函數(shù)函數(shù)體用什么符號(hào)括起來(lái)

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

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

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

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

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

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

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

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

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