1樓:
import
qualified
Data.Map
asMap
flist
=map
from
$Map
.toList
$Map
.fromListWith
merge
(map
tolist
)where
merge(a
,b,c
)(a',
b',c')
=(a,
b+b',
c+c')
to(a,
b,c,
d)=(
a,(b
,c,d
))from(a
,(b,
c,d))
=(a,
b,c,d)
2樓:張砸鍋
Prelude> :
Prelude> merge [("Norte",4,23,20),("Norte",4,3,2),("Norte",4,4,5),("Centro",6,0,0),("Sul",3,0,0)]
[("Norte",4,30,27),("Centro",6,0,0),("Sul",3,0,0)]
Prelude>
3樓:netcan
groupElemx=
letgroup
=groupBy(\
(a,_
,_,_
)(b,
_,_,
_)->a==
b)xin
map(
foldl(\
(name,a
,b,c
)(name',a'
,b',c'
)->(name',a'
,b+b'
,c+c'
))("",
0,0,
0))group
*Main
>groupElem
[("Norte",4
,23,20
),("Norte",4
,3,2
),("Norte",4
,4,5
),("Centro",6
,0,0
),("Sul",3
,0,0
)][(
"Norte",4
,30,27
),("Centro",6
,0,0
),("Sul",3
,0,0
)]第一步通過groupBy分組得到->[]:
[[("Norte",4
,23,20
),("Norte",4
,3,2
),("Norte",4
,4,5
)],[(
"Centro",6
,0,0
)],[(
"Sul",3
,0,0
)]]對分組的元素進行map,map操作的是[] ,進行fold對元素累加得到最終結果:
Python 如何實現月份相加?
奚衡 受邀答題,自己DIY了乙個計算這個的函式,思路大致 1 計算出這段指定時間的當天時間凌晨時間和疊加月後的凌晨時間 2 求出相差的天數 3 最後再加天數再指定的時間內疊加即可 usr bin env python coding utf 8 from datetime import datetim...
haskell 如何用fold分組
葉芝秋 我提供一種方法 groupBynxs snd foldr group 1,i quot n x i,x zip 0 xs where group i x j,yss i j i,x head yss tail yss otherwise i,x yss 演算法思想 首先從0開始列舉元素,並將...
Haskell 中如何描述 product 作為 的 category?
張智浩 首先這個問題表述確實不大清楚,至少不是嚴格的數學語言 或者說不大精確 我把問題重新表述如下 此處快速回憶範疇的定義,略 或可參見維基百科 性質 對任意三個物件 復合對映 是同構。不精確的問題 若乙個範疇滿足性質 我們能對它說些什麼嗎?從某些 可能沒用的 經驗來看,這種問題一般就取特殊值就完了...