RWH,第3章问题5请求的工作我创建了一个函数来测试paldindrome的存在。关于函数的Haskell问题
我写了这一点,但它不工作
pCheck :: (Eq a) => [a] -> Bool;
pCheck a = take n a == (take n $ reverse a)
where n = floor (length a/2)
我得到这个错误,当我尝试运行它:
No instance for (RealFrac Int)
arising from a use of `floor' at len.hs:13:11-32
Possible fix: add an instance declaration for (RealFrac Int)
In the expression: floor (length a/2)
In the definition of `n': n = floor (length a/2)
In the definition of `pCheck':
pCheck a = take n a == (take n $ reverse a)
where
n = floor (length a/2)
我很困惑我究竟做错了什么?我知道一个paldindrome可以用a == reverse a
进行测试,但现在我想以我的方式找到错误。
UPDATE:与代码中的错误之一是固定的,通过司法建议,这个问题已经被更新,以反映剩下的问题
一个简单测试将是:'isPalindrome X =(秀X)==(反向$显示X)' – 2009-11-30 06:37:13
回复:Jonno,我不认为节目,或需要括号。 'isPalindrome = x ==反向x' – 2009-11-30 06:52:40