1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. JavaScript 函數式編程實踐

        時間:2024-09-10 00:01:43 JavaScript 我要投稿
        • 相關推薦

        JavaScript 函數式編程實踐

          函數式編程簡介

          說到函數式編程,人們的第一印象往往是其學院派,晦澀難懂,大概只有那些蓬頭散發,不修邊幅,甚至有些神經質的大學教授們才會用的編程方式。這可能在歷史上的某個階段的確如此,但是近來函數式編程已經在實際應用中發揮著巨大作用了,而更有越來越多的語言不斷的加入諸如 閉包,匿名函數等的支持,從某種程度上來講,函數式編程正在逐步“同化”命令式編程。

          函數式編程思想的源頭可以追溯到 20 世紀 30 年代,數學家阿隆左 . 丘奇在進行一項關于問題的可計算性的研究,也就是后來的 lambda 演算。lambda 演算的本質為 一切皆函數,函數可以作為另外一個函數的輸出或者 / 和輸入,一系列的函數使用最終會形成一個表達式鏈,這個表達式鏈可以最終求得一個值,而這個過程,即為計算的本質。

          然而,這種思想在當時的硬件基礎上很難實現,歷史最終選擇了同丘奇的 lambda 理論平行的另一種數學理論:圖靈機作為計算理論,而采取另一位科學家馮 . 諾依曼的計算機結構,并最終被實現為硬件。由于第一臺計算機即為馮 . 諾依曼的程序存儲結構,因此運行在此平臺的程序也繼承了這種基因,程序設計語言如 C/Pascal 等都在一定程度上依賴于此體系。

          到了 20 世紀 50 年代,一位 MIT 的教授 John McCarthy 在馮 . 諾依曼體系的機器上成功的實現了 lambda 理論,取名為 LISP(LISt Processor), 至此函數式編程語言便開始活躍于計算機科學領域。

          函數式編程語言特性

          在函數式編程語言中,函數是第一類的對象,也就是說,函數 不依賴于任何其他的對象而可以獨立存在,而在面向對象的語言中,函數 ( 方法 ) 是依附于對象的,屬于對象的一部分。這一點 j 決定了函數在函數式語言中的一些特別的性質,比如作為傳出 / 傳入參數,作為一個普通的變量等。

          區別于命令式編程語言,函數式編程語言具有一些專用的概念,我們分別進行討論:

          匿名函數

          在函數式編程語言中,函數是可以沒有名字的,匿名函數通常表示:“可以完成某件事的一塊代碼”。這種表達在很多場合是有用的,因為我們有時需要用函數完成某件事,但是這個函數可能只是臨時性的,那就沒有理由專門為其生成一個頂層的函數對象。

        【JavaScript 函數式編程實踐】相關文章:

        javascript編程異常處理的方法08-04

        淺析jQuery 遍歷函數javascript08-06

        Javascript函數的定義和用法分析08-15

        JavaScript中push(),join() 函數實例詳解09-05

        最常用的20個javascript方法函數09-10

        JavaScript日期時間格式化函數08-29

        JavaScript中常見的字符串操作函數及用法07-24

        關jQuery彈出窗口簡單實現代碼-javascript編程06-07

        有關javascript實現的多個層切換效果通用函數示例10-07

        JavaScript基于正則表達式數字判斷函數06-14

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>