2012-11-13 91 views
1

可能重複:
What are advantages and disadvantages of 「point free」 style in functional programming?使用免費點有什麼好處嗎?

當我在大學,我不得不學習哈斯克爾。在我的一個課程中,我們學習瞭如何使用無點功能。除了學術觀點以外,還有點自由式編程的優點嗎?

就效率而言有沒有什麼區別?在有很多代碼行的應用程序中,點沒有更難理解的地方?

+0

@DonStewart對不起,我沒有注意到它是重複的 – dreamcrash

+0

@AndrewC當時我還需要做很多證明。我看到「風格」有一個「打開心靈」,但我從不認真。因爲我總是認爲這種風格在大項目中不適用於非大型項目 – dreamcrash

+1

「在具有大量代碼的應用程序中,難以理解的點更難以理解」 - 您不會盲目地將完全無點的風格應用於整個項目程序,所以代碼的行數是不相關的。關鍵是,一旦你習慣了無點式的風格,*有些東西可以在這種風格上更加清晰。所以你可以在有用的時候使用它,當它沒有幫助時不用它,和其他技術一樣。無論情況大致爲零,**始終**都有幫助的編程技術的數量。 – Ben

回答

12

一旦你習慣了它,它會更清晰,更清晰,只要你不要太過分。

也許((not.).)並不像\f x y = not (f x y)你一樣清楚,但

munge = this . that . other 

應該是清楚不過

munge x = this (that (other x))) 

你的講師教你pointfree讓你成爲一個更好的程序員,不是因爲它的最好混淆你的代碼,所以你應該在有用的時候使用它。

動機不是效率,它是清晰的思想,目的和表達。

6

閱讀起來可能更容易或更困難。因此,它可能會影響代碼可維護性,具體取決於您如何使用它。它不會對性能產生影響(除非是非常特殊的情況)。

這只是另一個成語。