最近對Smalltalk的介紹讓我對「純」面向對象風格的應用和好處有了啓發。我以前在Ruby中看到過這樣的好處,儘管面向非面向對象的if
,unless
等構造似乎並沒有帶來一切。純粹在這裏,我談論的是'一切都是對象'(包括通過塊或類似的功能),沒有過程式流程控制,而是在布爾集合中使用流控制方法。然而,即使在像Smalltalk這樣的語言中,有些事物因爲不是面向對象而突出。例如,如果不使用特殊語法(:=而不是'is:'或類似的方法)來進行變量賦值似乎是不可能的,並且從函數返回值似乎需要似乎不屬於的^運算符'任何對象。什麼是一些最純粹的面向對象的語言?
有沒有任何語言可以進一步提升這種風格?
純度的好處是什麼?純度使Haskell比其他函數式語言具有更高的學習曲線,因爲monad從程序角度來看很難理解。 –
@克里斯:是的,但是一旦你得到他們,單子就會很棒。另一方面,這個問題似乎讓純粹的東西變得有點遠了......當然,你可以放棄返回值,而是需要通過對象狀態進行通信(調用一個沒有任何結果的方法,然後使用'self.result'),但是我們程序員通常會盡量保持儘可能小的範圍,這是有原因的。另外,它會破壞方法鏈接,因爲沒有返回值,除非將某個對象屬性定義爲該值,但隨後我們又回到了魔術。而這樣的例子不勝枚舉。 – delnan
我完全認識到在這方面的純度可以使事情變得非常冗長而且可能不是高性能的,但在具有非常小且一致的規則集的語言中也有顯着的好處。也就是說,我很想找到一種能夠讓事情發展到極致的語言,即使只是一個好東西的例子。 – donalbain