初中函數(shù)入門 求解……元編程,泛型編程,函數(shù)式編程,面向?qū)ο缶幊?,面相過程編程,模板編程等等的關(guān)系是什么?
求解……元編程,泛型編程,函數(shù)式編程,面向?qū)ο缶幊蹋嫦噙^程編程,模板編程等等的關(guān)系是什么?元編程:是指對元數(shù)據(jù)(可以是自己的或其他程序)的一種操作,以完成本應(yīng)在編譯時完成的部分工作,從而達(dá)到更高的工
求解……元編程,泛型編程,函數(shù)式編程,面向?qū)ο缶幊?,面相過程編程,模板編程等等的關(guān)系是什么?
元編程:是指對元數(shù)據(jù)(可以是自己的或其他程序)的一種操作,以完成本應(yīng)在編譯時完成的部分工作,從而達(dá)到更高的工作效率。簡而言之,就是“編程”。
通用編程:通過一種方式實(shí)現(xiàn)一個通用的標(biāo)準(zhǔn)容器庫,使標(biāo)準(zhǔn)容器庫可以在各種類型中重復(fù)使用,類似于模板。
函數(shù)式編程:是一種以計(jì)算機(jī)操作為函數(shù)的編程,可以將函數(shù)作為輸入和輸出來控制程序的行為。λ演算是這門語言最重要的基礎(chǔ)。
面向?qū)ο缶幊蹋阂环N將現(xiàn)實(shí)世界映射到計(jì)算機(jī)模型的面向?qū)ο缶幊谭椒?。程序是各種操作的對象。
面向過程編程:一種以過程為中心的編程思想,它將程序分解為一個逐步操作數(shù)據(jù)的過程。
模板編程:一種元編程技術(shù),其中編譯器使用模板生成臨時源代碼,然后將其與其余代碼混合并編譯。這些模板的輸出包括編譯時常量、數(shù)據(jù)結(jié)構(gòu)和完整的函數(shù)。
哪些編程語言是函數(shù)式的?
函數(shù)編程是一種編程范式,它把計(jì)算機(jī)操作看作函數(shù)計(jì)算。λ演算是函數(shù)程序設(shè)計(jì)語言的重要基礎(chǔ)。λ演算函數(shù)可以接受該函數(shù)作為輸入(參數(shù))和輸出(返回值)。與指令編程相比,函數(shù)編程強(qiáng)調(diào)函數(shù)計(jì)算比指令執(zhí)行更重要。與過程編程相比,函數(shù)計(jì)算在函數(shù)編程中可以隨時調(diào)用。所以JavaScript是一種函數(shù)式編程語言。
為什么感覺Java越來越傾向于函數(shù)式編程?是由實(shí)際問題驅(qū)動的嗎?
一切都是為了簡潔
!Java語言擁有成熟的技術(shù)社區(qū)和豐富的類庫,以及模式化的開發(fā)模式一直是企業(yè)應(yīng)用的寵兒,但正因?yàn)槿绱耍a冗余、開發(fā)復(fù)雜一直備受詬病!為了改變這種現(xiàn)象,Oracle在收購Java之后,一直致力于Java的簡潔開發(fā)。近年來,Scala是一種非常流行的編程語言,因?yàn)樗粌H融合了面向?qū)ο蟮乃枷?,而且具有函?shù)式編程的特點(diǎn),這非常符合現(xiàn)在簡潔開發(fā)的理念
!一句話,未來新版Java將提供更兼容的功能開發(fā)開發(fā),不是說功能開發(fā)比面向?qū)ο笳Z言更好,而是為了得到你需要的東西,走向更美好的明天。未來的編程語言是否沒有特點(diǎn),值得期待。。
函數(shù)式編程(Functional Programming)相比面向?qū)ο缶幊蹋∣bject-oriented Programming)有哪些優(yōu)缺點(diǎn)?
面向?qū)ο筇貏e符合人類認(rèn)識世界的思維方式。OOP的興起源于大規(guī)模軟件系統(tǒng)開發(fā)中對代碼管理、重用和擴(kuò)展的需求。OOP為代碼結(jié)構(gòu)的合理性提供了更多的設(shè)計(jì)可能性和空間。面向?qū)ο蟮娜齻€特性,封裝、繼承和多態(tài),都是表面的特性。OOP的真正靈魂是抽象。這個概念貫穿于OOP語言的各個層次和開發(fā)的各個環(huán)節(jié)。只有深刻理解抽象,才能深刻理解OOP,充分發(fā)揮其優(yōu)勢。
函數(shù)式編程是一個非常古老的東西,這就是為什么它今天可以重用的原因。由于數(shù)據(jù)量的激增和硬件的高速發(fā)展,需要多核處理。functional最重要的特性是無狀態(tài)的,它沒有變量,因此它本身是線程安全的,這決定了它特別適合于高并發(fā)、大數(shù)據(jù)量的處理。
Face object和function都是從語言特性方面支持的編程思想,它們并不矛盾或?qū)α?。因此,我們可以利用他們的?yōu)勢來發(fā)展。這也是開發(fā)語言未來發(fā)展的一個方向,即支持人臉對象和函數(shù)表達(dá)式的多范式編程?,F(xiàn)在最典型的代表是Scala。