3 回答

蠱毒傳說
TA貢獻1895條經驗 獲得超3個贊
這是一個品味問題,但是我發現這種風格令人不愉快。首先,我將描述它的含義,然后,提出一個我更喜歡的替代方法。
你需要知道,(f . g) x = f (g x)和(f ?) x = f ? x任何運營商?。由此我們可以推斷出
countWhere p = ((length .) . filter) p
= (length .) (filter p)
= length . filter p
所以
countWhere p xs = length (filter p xs)
我更喜歡使用一個叫做 .:
(.:) :: (r -> z) -> (a -> b -> r) -> a -> b -> z
(f .: g) x y = f (g x y)
然后countWhere = length .: filter。我個人覺得這很清楚。
(.:也Data.Composition可能在其他地方定義。)

catspeake
TA貢獻1111條經驗 獲得超0個贊
從來沒有提到過,pointpoint風格在任何方面都更具可讀性或更好。我唯一提到“可讀”一詞是與tac示例結合使用的。我同意,人們可以通過無點編程來擺脫困境。mf
用無點樣式編寫的函數就是這種形式的典范。但是,從數學的角度研究無點編程風格還是很有趣的,因為它使程序的結構在數學上更易于處理。它可以使您的代碼更短,但是容量有限。
添加回答
舉報
0/150
提交
取消