定义一个函数,而不使用它在Show类中的事实

时间:2011-05-09 16:14:10

标签: haskell

不使用 Integer 类型属于 Show 类定义函数的事实

integerTostring :: Integer -> String

提示:使用功能

unfoldr :: (b-> Maybe(a,b))->b->[a])
来自 List 模块的

,由公式

定义
unfoldr f b=
            case f b of
                  Nothing -> []
                  Just (a,b) -> a : unfoldr f b



where
**data Maybe a = Nothing| Just a deriving (Eq, Ord, Read, Show)**

Char 模块导出函数

intToDigit :: Int -> Char

标准前奏提供了以下类 Enum 的方法:

fromEnum :: (Enum a) => a -> Int

并且 Integer 类型属于 Enum 类......

我做的是:

   import List, Char
    integerToString :: Integer -> String
    integerToString = reverse.unfoldr(\a -> if a>0 then Just(IntToDigit$fromEnum$a'mod'10,a'div'10)else Nothing

那是我必须做的吗?如果不是那么该做什么?

1 个答案:

答案 0 :(得分:2)

是的,这是一个很好的解决方案,虽然你忘了处理负整数和0.此外,我建议使用divMod函数而不是单独使用divmod