2011-03-26 72 views
1

这里是我的代码:具体最大值函数

data Polindrom = Polindrom { a :: Integer, 
          b :: Integer, 
          c :: Integer } deriving (Show) 


euler_4 = [ p | y <- [10..20], 
       z <- [10..20], 
       let x = y * z, 
       let p = Polindrom { a = y, b = z, c = x }, 
       let s = show x,    
       s == reverse s] 

现在我需要找到具有最大的“C”的euler_4的元素。在红宝石我已经使用这样的结构:

}.sort { |a, b| 
    b[2] <=> a[2] 
}[0] 

我怎么能在Haskell得到它?

回答

2
maximumBy (\x y -> compare (c x) (c y)) 
6
import Data.Function 

maximumBy (compare `on` c) 
1

第三种可能性是Data.Ord.comparing

maximumBy (comparing c)