即時通訊新的「真正的」Javascript:ing我知道更多的函數式編程。Javascript可以實現面向對象,但Ruby不能實現函數式編程?
看來,在Javascript中,你可以從兩個世界中獲得最好的功能和麪向對象編程。
但是在Ruby中,您沒有頭等函數(函數作爲數據類型)。
這是否意味着Javascript支持兩全其美,而Ruby僅支持面向對象的編程風格?
即時通訊新的「真正的」Javascript:ing我知道更多的函數式編程。Javascript可以實現面向對象,但Ruby不能實現函數式編程?
看來,在Javascript中,你可以從兩個世界中獲得最好的功能和麪向對象編程。
但是在Ruby中,您沒有頭等函數(函數作爲數據類型)。
這是否意味着Javascript支持兩全其美,而Ruby僅支持面向對象的編程風格?
紅寶石確實有一流的功能。是什麼讓你覺得它不? 維基百科:具有一流的功能的語言是其中:
該語言支持的程序的執行過程中構建新的功能,將它們存儲在數據結構中,將它們作爲其他函數的參數,並將它們作爲其他函數的值返回。
你可能掛了這樣的事實:Ruby的特效/ Lambda表達式需要通過call()
被調用,但這不會對他們的影響firstclassness。 Common Lisp lambdas也被調用funcall
以及我不記得任何人聲稱Common Lisp沒有頭等功能。
功能性編碼與功能性語言編碼有區別。 Ruby可能沒有很多功能語言的功能,但是如果你學會了功能性的思考,你會找到方法來使用Ruby來達到這個目的。
真正重要的是範式 - 您用於構建解決方案的思維過程。函數式語言可用於編寫過程式代碼(就像OO語言一樣),但如果您瞭解不同的範例,則可以應用最適合您的方案的方法。
如果你到書,我很喜歡「Real World Functional Programming」(與飛碟雙向先生合着)
(我不確定我是否會稱JavaScript爲「兩全其美」......) – 2010-09-26 15:04:31
-1用於討論ruby,而對語言沒有絲毫的線索。 – glebm 2010-09-26 16:24:39
匿名函數不是一種功能性語言。 – NullUserException 2010-09-26 17:29:36