What I want to do
I want to implement an example of banana-split law.・(|f|),(|g|)・=(|・f”F(π1),g”F(π2)・|)
Script
I didn’t know how to ouptut tuple with foldr, I quited to implement it.After following implementation, collecting foldr for only one makes the script be an example of banana-split law.
-- Before sum' = foldr (\x xs -> x + xs) 0 length' = foldr (\x n -> 1 + n) 0 average ls = sum' ls / length' ls -- After average' ls = s / l where (s, l) = ((foldr (\x xs -> x + xs) 0) ls, (foldr (\x n -> 1 + n) 0) ls)
Result
After all, I’ll run the script.$ghci Prelude> :load banana-strip.hs Main> average' [1,2,3,4,5] 3.0