2009-04-17

函数复合

求不大1000被3或被5整除所有数的和,可以这样
sum [x|x<-[1..999], x `mod` 3 == 0 
      || x `mod` 5 == 0 ]
但也可以将(x `mod`)和(== 0)分别作为两个函数复合为一个新函数(== 0).(x `mod`)
sum [x|x<-[1..999], any( (== 0).(x `mod`) )[3, 5] ]

没有评论: