Haskell-输入时出现分析错误

Haskell-输入时出现分析错误,haskell,Haskell,我有下面的代码 将列表中的每个偶数减半: halfEvens :: [Int] -> [Int] halfEvens [xs] | x `mod` 2 == 0 = x `div` 2 | otherwise = x where x <- xs halfEvens::[Int]->[Int] 半平[xs] |x`mod`2==0=x`div`2 |否则=x 其中x代码中有两个主要问题: 其中块定义函数,因此,您应该使用=而不是 parse error

我有下面的代码 将列表中的每个偶数减半:

halfEvens :: [Int] -> [Int]
halfEvens [xs]  
   | x `mod` 2 == 0 = x `div` 2
   | otherwise      = x
   where x <- xs
halfEvens::[Int]->[Int]
半平[xs]
|x`mod`2==0=x`div`2
|否则=x

其中x代码中有两个主要问题:

  • 其中
    块定义函数,因此,您应该使用
    =
    而不是
    
    
    parse error on input '<-'
    
    Prelude> let halfIfEven x = if even x then x `div` 2 else x
    
    Prelude> let halfEvens = map halfIfEven
    Prelude> halfEvens [1..10]
    [1,1,3,2,5,3,7,4,9,5]
    
    halfIfEven :: Int -> Int
    halfIfEven x | even x    = x `div` 2
                 | otherwise = x
    
    halfEvens :: [Int] -> [Int]
    halfEvens []     = []
    halfEvens (x:xs) = (halfIfEven x):(halfEvens xs)