導航:首頁 > 編程語言 > 函數式編程教程

函數式編程教程

發布時間:2022-07-10 23:34:36

『壹』 零基礎的初學者應如何學習

網站開發開發大致分為前端和後端,前端主要負責實現視覺和交互效果,以及與伺服器通信,完成業務邏輯。其核心價值在於對用戶體驗的追求。可以按如下思路學習系統學習:

基礎知識:

1. html + css 這部分建議在 w3school 在線教程 上學習,邊學邊練,每章後還有小測試。 之後可以模仿一些網站做些頁面。

2. javascript 要學的內容實在很多,如果沒有其他編程語言的基礎的話,學起來可能要費些力,還是建議先在 w3school上學習。之後建議馬上看《javascript語言精粹》,js是一門很混亂的語言,這本書能夠幫助你區分哪些是語言的精華,哪些是糟粕,對於語言精華,應該深入學習。糟粕部分能看懂別人寫的代碼就行,自己就不用嘗試了。

對於習慣看視頻學習的同學,以上內容也可以在 慕課網-國內最大的IT技能學習平台 上學習。雖然我沒用過,但好幾位同學推薦過了,大概看了下,內容還不錯。

進階:

有了以上基礎,就可以進行一般的靜態網頁設計,不過對於復雜的頁面還需要進一步學習。

1. css。截至今日(2015.12.08),天貓、淘寶、支付寶都已停止對ie6,7的支持,未來相信大多數網站都會停止對ie6,7的支持,ie8的市場份額也不像兩年前那麼高了(天貓即將停止對IE8的支持,2016.12.13),webkit內核已成為市場主流。對於css的學習,我推薦分三塊:「基礎概念」,「css2.1規范」,「css3規范」。必看 精通CSS(第2版) (豆瓣),看完這本書你應該對:盒子模型,流動,block,inline,層疊,樣式優先順序,等概念非常了解了。這本確實有些年頭了,但基礎概念部分講述非常清晰,可以稱之為經典。ie6,7相關的內容可以不看。css3的部分可以參考:CSS3實用指南 (豆瓣)。這本書同樣有些老,只是最新出版的書中沒發現有特別好的。

2. javascript。上面提到內容還不足以讓你勝任js編程。在有了基礎之後,進一步學習內容包括:

a) 框架。推薦 zepto,簡單易用,在w3school簡單學習js後,直接上手 zepto 即可完成一些簡單的項目。zepto 源碼簡單清晰,也適合新手閱讀。補充: 可以使用 codecademy 學習 javascript,zepto,用戶體驗真的很好(感謝 TonyOuyang )。最近比較熱門的框架是React, VUE, Angular這些, 根據需要稍作了解即可。隨著ie瀏覽器市場份額的下降,以及移動端的發展,標准原生js已經可以在實際項目中使用(目前還需要藉助es5shim、babel等),重點還是ES5, ES6, ES7。

b) javascript 語言範式 。這個名字可能並不恰當,只是我找不到可以描述「面向對象」,「函數式」這個兩個概念的概念。javascript不完全是一個面向對象的語言,它的很多設計理念都有函數編程語言的影子,甚至說如果你不用面向對象,完全可以把它理解成一門函數式編程語言。javascript的很多語言特性,都是因為他具有函數式語言的特點才存在的。這部分推薦先學習面向對象的基本理論,對封裝,繼承,多態等概念要理解,維基網路,網路會是你的幫手,另外推薦《object oriented javascript》,應該有中文版。對與函數式編程可以參考這篇文章:JavaScript 中的函數式編程實踐

c) javascript 語言內部機制。必須弄清如下概念:js中變數的作用域,變數傳遞方式,函數的定義環境與執行環境,閉包,函數的四種調用方式(一般函數,對象的方法,apply,call),以及四種調用方式下,『this'指向的是誰。這部分內容你會在《javascript語言精粹》中詳細了解。

d) dom編程,這個web前端工程師的核心技能之一。必讀《dom編程藝術》,另外《高性能javascript》這本書中關於dom編程的部分講的也很好。

e) ajax編程,這是另一核心技術。ajax建議在網上查些資料,了解這個概念的來龍去脈,網路,維基網路上的內容就足夠了。真正編程是很容易的,如今幾乎所有框架都對ajax有良好的封裝,編程並不復雜。另外,ajax未來幾年會被 Fetch Standard 取代,也需要了解。另外關於xhr2,cors(跨站資源共享),formData文件上傳,也需要了解。

f) es5, es6。現在開發js大部分基於es5的,ie8以下通過es5-shim。但利用一些工具,現在已經可以直接寫es6代碼了,尤其在reactjs,nodejs類型的項目中。對於從es5,es6每個階段js發生了哪些變化都需要系統學習,學習順序建議是 JavaScript基礎 -> es5 -> es6,越靠前的越重要。一些參考鏈接:ECMAScript 5 compatibility tableECMAScript 6入門ES5 « 張鑫旭

3. html5。需要了解html都提供了哪些api,然後項目中用起來。這部分沒有什麼難理解的,關鍵在於能用html5解決業務問題,以及不支持html5的瀏覽器的降級方案。這部分體現了前端的一個思想:面向未來編程,盡早將新技術引入業務中來,而不是過分考慮兼容性問題,進而導致面向過去編程。

再進一階代碼層面:

有了以上知識,對於大多數小型網站,你應該已經可以寫出能夠工作的代碼了。但要想成為更專業的前端,你還需繼續努力。更高的要求大概還有四方面:1易維護,2可測試,3高性能,4低流量(移動端)。

1. 易維護。對於頁面你該理解『樣式』,『數據』,『行為』三者分離,對應的當然就是css,html,js。對於js代碼,你最好了解設計模式,重構,MVC等內容。

2. 可測性。就是保證你的代碼能溝通單元測試100%覆蓋到所有分支

3. 高性能。必讀《高性能javascript》

4. 低流量。移動端關注比較多,PC端現在可以不用太關注了

再進一階 · 工程層面:

前端項目同樣面臨軟體生命周期的各個環節,首先是代碼管理,你必須學會使用svn和git。其次是代碼的構建,如今前端代碼構建已經不是簡單的壓縮一下了,需要進行依賴管理、模塊合並、各種編譯,必須要學會使用grunt、gulp、webpack、rollup等前端構建工具,以及前端模塊管理的方式,amd,cmd,es6 mole 等等。

然後呢?

以上內容只是簡單說了前端學習的順序。前端工程師應該有的知識結構請參考這里:JacksonTian/fks · GitHub

對於前段開發,基本內容就這些了,可以根據自己的興趣愛好選擇性學習以下內容。

1. 交互設計。大公司依然有專業人士搞這些,不過不懂交互的前端一定不是好前端。推薦《簡約至上》。

2. 後端。應該說前段工程師必須至少了解一門後端語言,不過如果愛好也可深入學習,入手難度比較低的應該是php了。這部分由可分為基於頁面,基於框架兩種。大型項目都是基於框架開發的,建議至少了解一個MVC框架,比如php的ci, yii, yaf 等,好還框架的設計思想都大同小異。如今NodeJs在大公司已經得到普遍的使用,推薦大家使用在Node上使用Koa框架做一些後端服務的開發。

3. Android和ios開發。時至今日,前端的工作領域已經非常廣泛,native的界面開發本質上也是前端開發,個大公司都面臨著Native環境和web環境頁面同時維護的問題,如果能夠在技術上得到統一,將會有巨大的價值。對於學有餘力的同學,應該了解Native開發的基本流程,至少了解到界面構建的技術。

4. 如果你能夠認真看到這里,說明你對前端有真愛,最後說一個編程習慣的問題,絕對是保你工作平安,少出故障。代碼提交前必須做的三個事情:A. git diff(svn diff),檢查所有變更;B. 跑一邊單元測試;C. 手動運行一遍所有demo.

『貳』 現在我算是做過幾個js項目,但是想要精通的話,有什麼書介紹,最好有有順序的,進階到精通之類的

推薦幾個我看過的給你:
1、《JavaScript高級程序設計》,JavaScript技術名著,html+css+javascript教程精粹,html 實戰實例,銷量超過8萬冊。
2、《精通JavaScript 第2版》,jQuery之父經典著作新版 系統總結JavaScript語言特點 直擊JavaScript本質。
3、《JavaScript函數式編程》,函數式編程是當前程序設計語言的發展趨勢和熱門話題。本書的作者Michael Fogus是Clojure和ClojureScript的核心貢獻者,也是The Joy of Clojure一書的作者,是世界知名的函數式編程專家。

『叄』 前端開發工程師必讀書籍有哪些值得推薦

1丶JavaScript入門
《JavaScript權威指南(第六版)》 ★★★★★
淘寶前端團隊翻譯的,看譯者列表都是一堆大神。這本書又叫犀牛書,號稱javascript開發者的聖經,網上對此書評價很多,大概意思都是說這本書是一本JavaScript文檔手冊,沒有完整看過一遍此書的都不能算是一名合格的前端工程師。 我也是從這本書開始接觸前端開發的,當時還是華章出版社的校園大使,免費申請到了這本書,可惜的是兩年來我一直把它作為一本cookbook來查閱,一直沒有好好通讀一遍。個人感覺這本書還是寫得枯燥了些,不過內容絕對是五顆星,無可挑剔!
2丶《JavaScript高級程序設計》 ★★★★★
又稱紅寶書,雅虎首席前端架構師,YUI的作者Zakas出品。雖然書名帶了「高級」二字,但是講得也很基礎,而且行文風格很流暢,每一小節就像是一篇博客,讀起來並不枯燥,個人感覺比上面那本犀牛書可讀性更強。說到這里,也推薦大家多多關注作者的博客:NCZOnline - The official website of Nicholas C. Zakas ,上面也有許多高質量的博文。感覺這本書就像是作者平時的博文按照前端知識體系組織成了一本技術書。
作為初學者如果覺得上面兩本書作為入門書來說太厚了,也可以看看這本,不厚,評價也很高,但是由於本人沒看過,就不作過多評價了。
3丶《JavaScript編程精解》 ★★★★
用上下班時間看完的第三本書。看起來比較吃力,第五章函數式編程和第六章的面向對象編程很多都沒看懂。全書游戲式的編程教程還是很有意思的。譯者tom大叔名頭很大,翻譯的質量也只是中規中矩吧。不過,還是get到很多技巧!這本書的推薦語說這本書用來入門很好,但是個人認為初學者並不合適看這本書入門,作者在代碼示例中不自覺得使用了一些高級用法,初學者看容易暈菜。聽說最近出了第二版,加入了NodeJS的內容,這本書是開源的:Eloquent JavaScript
4丶《JQuery權威指南》 ★★★
錯誤很多啊,不過其中的語法+示例的形式,確實很適合初學者。但是錯誤實在太多了,而且有些語句還不通順,看著很累啊,只能說寫得好代碼的人,書不一定寫得好。

『肆』 如何使用正確的姿勢進行高效python函數式編程

不管學習什麼新的東西,效率最低但是又不可或缺的環節就是看教科書了。雖然看書的過程可能會很無聊,但是過一遍書至少能對整個知識框架有個大體的把
握。我最早知道 Python 還是在《黑客與畫家》這本書中看到的,書裡面有一章節是講編程語言的,作者很把 python
作為學習編程的入門語言。我當時是把《簡明 Python 教程》給過了一邊,後來又看了一遍《深入python》,這里特別《深入
Python》,除了介紹 python 的基本特性之外,還介紹了諸如函數編程、正則表達式、處理 HTML 和
XML等高級用法。除了看書,上公開課也是挺不錯的,教學本來就比自己啃教科書有意思,而且完成課程作業也能鍛煉動手編程能力。我上過兩門不錯的公開
課,一門是萊斯大學在 Coursera 上開的《Python互動式編程導論》,一邊學 python,一邊寫些小游戲,肯定不會覺得無聊;另一門就是
MIT 在 edX 上開的《計算機科學及python編程導論》,它是 MIT
edX系列課程(XSeries)中的第一課,系列課程共兩門,除了這門課以外還有《計算思維及數據科學導論》,不過第二門就沒有上過了。

《簡明 Python 教程》
《深入 Python》
《Python互動式編程導論》
《計算機科學及python編程導論》

『伍』 就會簡單的電腦維修,想學習Python 有沒適合新手學習的書籍和教程介紹幾個

非常好的入門書是《Dive Into Python》,免費的,有中文翻譯版本。另外,《簡明a Python 教程》也不錯。不過python的隨機幫助文檔是最好的材料。在編程的時候要經常查。其他python的教程也非常多,比如head first系列的,cookbook系列的,in action系列的。深入的看一本,其他的輔助看就好了。

『陸』 如何學編程

編程
簡單的說,編程就是為了藉助於計算機來達到某一目的或解決某個問題,而使用某種程序設計語言編寫程序代碼,並最終得到結果的過程。
計算機雖然功能十分強大。可以供你上網、打游戲、管理公司人事關系等等,但是沒有程序,它就等於是一堆廢鐵,不會理會我們對它下達的「命令」。於是,我們要馴服它,只有通過一種方式——程序,這也是我們和計算機溝通的唯一方式。
編程原理
程序也就是指令的集合,它告訴計算機如何執行特殊的任務。打個比方說,它好比指導你烹調菜品的菜譜或指揮行駛一路到達目的地的交警(或者交通路標)。沒有這些特殊的指令,就不能執行預期的任務。計算機也一樣,當你想讓計算機為你做一件事情的時候,計算機本身並不能主動為我們工作,因此我們必須對它下達指令,而它根本不會也不可能聽懂人類自然語言對事情的描述,因此我們必須使用程序來告訴計算機做什麼事情以及如何去做?甚至對最簡單的任務也需要指令,例如如何取得擊鍵,怎樣在屏幕上放一個字母,怎樣在磁碟中保存文件等等。
上面講到的計算機本身不會主動的做任何事情。因此我們要通過程序的方式來讓計算機為我們「效勞」。而這個過程就是我們「編」出來的。編程可以使用某一種程序設計語言來實現,按照這種語言的語法來描述讓計算機要做的事情。
我們這里所講的語法和外語中的語法完全兩碼事,這里講的語法只是讀你的程序書寫做出一寫規定而已。寫出程序後,再由特殊的軟體將你的程序解釋或翻譯成計算機能夠識別的「計算機語言」,然後計算機就可以「聽得懂」你的話了,並會按照你的吩咐去做事了。因此,編程實際上也就是「人給計算機出規則」這么一個過程。
常見的編程語言
* CSS Cascading Style Sheets 層疊樣式表
* .NET 是微軟2002年,為開發應用程序創建的一個富有革命性的新平台
* ActionScript ActionScript是Flash的腳本語言,與JavaScript相似,ActionScript是一種面向對象編程語言。
* APL、A+和J
* Ada Ada是一種表現能力很強的通用程序設計語言
* 匯編語言 匯編語言(Assembly Language)是面向機器的程序設計語言
* AWK AWK是一種優良的文本處理工具
* Basic 是一種設計給初學者使用的程序設計語言
o QBasic QBASIC是BASIC(Beginner's All-purpose Symbolic Instruction Code,初學者通用指令代碼)語言的一個變種,由美國微軟公司開發
o Visual Basic Visual Basic(VB)是一種由微軟公司開發的包含協助開發環境的事件驅動編程語言
* VBScript VBScript是Visual Basic Script的簡稱,即 Visual Basic 腳本語言
* Brainfuck Brainfuck是一種極小化的計算機語言
* C、C++ C語言是一種面向過程的計算機程序設計語言 ; C++是一種靜態數據類型檢查的,支持多重編程範式的通用程序設計語言。它支持過程化程序設計、數據抽象、面向對象程序設計、製作圖標等等泛型程序設計等多種程序設計風格
o Objective-C 通常寫作ObjC和較少用的Objective C或Obj-C,是擴充C的面向對象編程語言
* Clipper Clipper晶元主要用於商業活動的計算機通信網
* COBOL 一種適合於商業及數據處理的類似英語的程序設計語言
* dBase dBASE是第一個在微型計算機上被廣泛使用的資料庫管理系統(DBMS
* PASCAL、Delphi Pascal是一種計算機通用的高級程序設計語言 ;Delphi是全新的可視化編程環境,是一種方便、快捷的Windows應用程序開發工具
* Forth 由Charles H. Moore發展出來在天文台使用的電腦自動控制系統及程序設計語言,允許使用者很容易組合系統已有的簡單指令,定義成為功能較復雜的高階指令。
* Fortran 譯為「公式翻譯器」,它是世界上最早出現的計算機高級程序設計語言,廣泛應用於科學和工程計算領域。
* FoxPro 是由美國Fox Software公司於1988年推出的資料庫產品
* F# F#是由微軟發展的為微軟.NET語言提供運行環境的程序設計語言
* Fava Fava語言是一個小型的解釋語言,它主要面向於系統測試領域及小型嵌入式設備。
* IDL IDL 是一種數據分析和圖像化應用程序及編程語言
* Java Java是由Sun Microsystems公司於1995年5月推出的Java程序設計語言
* JavaScript Javascript是一種由Netscape的LiveScript發展而來的腳本語言
* J# Visual J# 是一種工具,供 Java 語言程序員用於構建在 .NET Framework 上運行的應用程序和服務
* LISP 一種基於λ演算的函數式編程語言。
* Lua Lua 是一個小巧的腳本語言
* LOGO 是一種早期的編程語言,也是一種與自然語言非常接近的編程語言,它通過「繪圖」的方式來學習編程
* Mole 在軟體工程中,指較高一級程序或模塊使用的一個單元或模塊
* Nuva Nuva語言是一種面向對象的動態腳本語言 Nuva語言的設計目的是用於基於模板的代碼生成
* Perl Perl 一般被稱為「實用報表提取語言」(PracticalExtraction andReportLanguage),也做「病態折中垃圾列表器」(PathologicallyEclectic Rubbish Lister
* PHP PHP 是一種 HTML 內嵌式的語言
* PL/I PL/I是Programming Language One的簡寫。當中的「I」其實是羅馬數字的「一」。它是一隻IBM公司在1950年代發明的第三代高級編程語言
* Prolog Prolog(Programming in Logic的縮寫)是一種邏輯編程語言
* Python 是一種面向對象的解釋性的計算機程序設計語言,也是一種功能強大而完善的通用型語言
* R R是用於統計分析、繪圖的語言和操作環境
* Ruby Ruby,一種為簡單快捷面向對象編程(面向對象程序設計)而創的腳本語言
* Scheme Scheme,一種系統設計語言,由LISP語言發展而來,屬於lisp的一種方言。與其他lisp不同的是,scheme是可以編譯成機器碼的。Scheme的一個主要特性是可以像操作數據一樣操作函數調用
* Smalltalk 一種面向對象的程序設計語言 一種程序設計環境 一個應用開發環境(ADE)
* Tcl/Tk 是一種 腳本語言
* Visual FoxPro Visual FoxPro原名FoxBase,是美國Fox Software公司推出的資料庫產品

『柒』 如何用c語言定義一個函數

函數是用戶與程序的介面,在定義一個函數前,首先要清楚以下三個問題。 1) 函數的功能實現及演算法選擇。演算法選擇會在後續文章詳細講解,本節重點關注函數的功能實現。一般選取能體現函數功能的函數名,且見名知意,如求和函數的函數名可取為 add,求最大值的函數名可取為 max,排序函數可取名為 sort 等。 2) 需要用戶傳給該函數哪些參數、什麼類型,即函數參數。 3) 函數執行完後返回給調用者的參數及類型,即函數返回值類型。 函教定義格式 函數定義的一般格式為: 返回類型 函數名 (類型參數1,類型參數2,…) { 函數體 } 也可以不含參數,不含參數時,參數表中可寫關鍵字 void 或省略,為規范起見,教程中對沒有參數的函數,參數表中統一寫 void。例如: 類型 函數名 () { 函數體 } 等價於: 類型 函數名 (void) //建議的書寫方式 { 函數體 } 如果該函數沒有返回類型,則為 void 類型。例如: void add (int x,int y) { printf ("sum=%d\n", x+y); } 除了 void 類型外,在函數體中,均需要顯式使用 return 語句返回對應的表達式的值。 函教返回值 函數的值是指調用函數結束時,執行函數體所得並返回給主調函數的值。 關於函數返回值說明如下。 1) 帶返回值的函數,其值一般使用 return 語句返回給調用者。其格式為: return 表達式; 或者 return (表達式); 例如: int add (int a, int b) { return (a + b); //return 後為表達式 } 函數可以含一個或多個 return 語句,但每次調用時只能執行其中一個 return 語句。 例如,求整數絕對值的函數: int f (int n) //含多個return語句,但每次調用只執行一個 { if (n >= 0) return n; else return -n; }

『捌』 編程時候這么多的函數方法之類的是怎麼記下來的

可以聯系英語單詞一起記憶,也可以通過死記硬背一些最基礎的函數公式,然後再加以學習。其實所謂的熟能生巧都是先通過一些硬性的記憶然後再從中找到靈感。

所有非函數系編程語言,核心無非是與或非三種邏輯、順序分支循環三種控制結構而已。然後,結構化多了函數定義、調用、返回以及變數作用域之類概念;面向對象多了封裝、繼承、多態;函數式則玩命玩遞歸甚或「抵制」變數——除了換湯不換葯的些須「口音」式的差異,哪種編程語言有本質差異?

數據在各個類和層次,客戶端,服務端之間傳遞過程中發生了什麼事情,會觸發什麼操作。這些內容,很久不會忘記掉。具體的某些框架類,函數,不會特意去記住。稍稍停止寫代碼的時間長一點,就會完全忘記掉。

閱讀全文

與函數式編程教程相關的資料

熱點內容
awss3命令 瀏覽:356
百度店鋪客戶訂單手機加密 瀏覽:500
釘釘班群文件夾怎麼上傳文件 瀏覽:749
人社app怎麼解綁手機 瀏覽:101
caj文件夾打不開 瀏覽:475
什麼app可以將電量變色 瀏覽:692
解放出你的解壓抖音小游戲 瀏覽:345
什麼方式解壓比較好 瀏覽:266
erp是什麼伺服器 瀏覽:185
python中tmp 瀏覽:23
說明wpf加密過程 瀏覽:144
java讀取list 瀏覽:703
iis7gzip壓縮 瀏覽:39
有什麼安卓機打吃雞好 瀏覽:598
三星u盤加密狗 瀏覽:474
php函數的返回值嗎 瀏覽:587
國企穩定程序員 瀏覽:328
編程貓如何使用教程視頻 瀏覽:220
安卓遠端網頁如何打日誌 瀏覽:218
壓縮flash大小 瀏覽:993