2008-10-27

函式程序之美

偶然从这里看到一段Haskell程序,用来求解由任意两个三位数乘积组成的最大回文数(palindrome),摘录如下(该程序版权属原作者)。这段程序是相当的简洁、美丽绝伦。

euler4 = 
   maximum [a*b | a<-range, b<-range, palindrome (a*b)]

range :: [Int]
range = [100..999] -- three digits

palindrome :: Int -> Bool
palindrome n = 
    digits == (reverse digits)
       where digits = show n

没有评论: