Haskell dot operator

function-composition, haskell, syntax

Solution

You're getting tripped up by haskell's precedence rules for operators, which are confusing.

When you write

x = fromIntegral.sum lst

Haskell sees that as the same as:

x = fromIntegral.(sum lst)

What you meant to write was:

x = (fromIntegral.sum) lst

Problem

I try to develop a simple average function in Haskell. This seems to work: ``` lst = [1, 3] x = fromIntegral (sum lst) y = fromIntegral(length lst) z = x / y ``` But why doesn't the following version work? ``` lst = [1, 3] x = fromIntegral.sum lst y = fromIntegral.length lst z = x / y ```

Original source

Related problems