我正在尝试创建一个接收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
答案 0 :(得分:2)
你说
' C'和' A'
虽然你的代码是
\ X-> x ==' C' || x ==' G'
您正在衡量C
和G
以及*100
的数量,并返回结果。
不要*100
,请/ length xs
。
function' xs = fromIntegral final0 / fromIntegral final1
where final0 = length $ filter (\x-> x == 'C'|| x == 'G') xs
final1 = length xs