Haskell字符串中char的百分比

时间:2017-11-06 14:13:07

标签: haskell

我正在尝试创建一个接收STRING的程序,并返回其中“C”和“A”的百分比。但是我错了,这是我的代码:

function' :: [Char] -> Double
function' xs = 100* ( fromIntegral final0 )
                    where final0 = length $ filter (\x-> x == 'C'|| x == 'G') xs

如果我运行:function'$ replicate 20'C',返回2000.0并且应该给我1.0

1 个答案:

答案 0 :(得分:2)

问题中的一些错误

你说

  

' C'和' A'

虽然你的代码是

  

\ X-> x ==' C' || x ==' G'

你正在做什么

您正在衡量CG以及*100的数量,并返回结果。

如何解决

不要*100,请/ length xs

解决方案

function' xs = fromIntegral final0 / fromIntegral final1
                where final0 = length $ filter (\x-> x == 'C'|| x == 'G') xs
                      final1 = length xs