※ 引述《Holocaust123 (Terry)》之銘言:
: 講 programming style 好像怪怪的,不過我不知道要講甚麼
: ‧object oriented programming oo
: ‧functional programming fun
: ‧generic programming gen
: ‧procedure programming pro
: 1.
: 想請問 functional programming 是不是有點類似oo,
: 只是oo programming是以class為單位,
: 而functional programming是以function為單位?
: 如果我說的是對的(orz),那style是oo的話,就不會是 fun 嗎(反之亦然)?
: 良葛葛的筆記看不太懂...
既然要區分,一定不是像來像去. 它們只是一種寫程式的風格或典範.
風格是指寫程式時心裏都在想哪方面的事情. 寫OO程式當然就是關心物件和物件.
寫函數程式,則是關心函數的事情:這個函數是另一些函數構成的,而另一些函數是
再另一些函數構成的.
: 2.
: generic programming 就是有類似 STL 的東西那樣嗎?
: generic programming => http://flolac.iis.sinica.edu.tw/lambdawan/zh/node/31
: 上面網頁說:「這樣的泛型演算法便能輕易為各種資料結構具現化」
: 這啥意思...具現化不是new一個class的實體物見出來嗎?
: 但泛型演算法不是應該是像 sort、append 這種function,那跟具限化的關係是...?
簡單說是一份演算法的 class, 要 instantiate 時,只要給它所需的資料結構,
它就產生一份演算法的 instance.
: 3. 可否用 venn's diagram 簡單描述一下這四種 programming style 的差別?
: 或是用「p=>q」的形式講一下這四者的關係 (ex: oo => pro)
: ^^^^^^^^^
: 我亂舉例的
Programming styles/paradigms 不能這樣歸屬,因為它們不是指特定的語言.
你可以有一個擁有OO風格的語言,也可以擁有一個Fun風格的語言;然而,你還可能
有一個語言是既有OO風格,也有Fun風格,但它是procedural語言.
這要怎麼說包含關係? 不管畫出怎樣的 Venn's diagram, 其中一定有說得不對的地方.
看過一個很粗略的分類是:
Procedural Language
Imperative Language
C
Functional Language
LISP
Non-procedural Language
Logic Language
Prolog
Declarative Language
SQL
至於OO,定位稍微模糊. 也許裡頭的物件概念,是屬於物件理論基礎,而不是語言特色.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.225.17