2016-11-07 2 views
0

Может кто-то мне помочь? Я пытаюсь запустить функцию average, но я получаю сообщение об ошибке, что читает «(ошибка синтаксического анализа) на входе„::“» для этого кода:Haskell отображает ошибку разбора

sum` :: [Int] -> Int 
sum` [] = 0 
sum` (x:xs) = x + sum` xs 

length` :: [a] -> Int 
length` [] = 0 
length` (x:xs) = 1 + length` xs 

average :: [Int] -> Rational 
average [] = error "empty list" 
average xs = toRational (sum xs)/toRational(length xs) 

Большое спасибо

+8

Я не думаю, что вы можете использовать обратные тики ('' '), попробуйте использовать одинарные кавычки (' '') –

+0

он работает спасибо – Kevin

+0

@JosephYoung, так как ваш комментарий решил проблему, можете ли вы разместить ее как ответ, чтобы его можно было принять? – sclv

ответ

1

По совету в комментарии, я переместил свой комментарий к ответу:

Я не думаю, что вы можете использовать назад тики (`), попробуйте использовать одиночные кавычки (')

Так было бы:

sum' :: [Int] -> Int 
sum' [] = 0 
sum' (x:xs) = x + sum' xs 

length' :: [a] -> Int 
length' [] = 0 
length' (x:xs) = 1 + length' xs 

average :: [Int] -> Rational 
average [] = error "empty list" 
average xs = toRational (sum xs)/toRational(length xs 
Смежные вопросы