Ошибка в этом определении:
anteilImKreis :: Double -> Double
let l = length(punkteImKreis)
in anteilImKreis k = (fromIntegral (l)) / k^2
let
является выражением;следовательно, оно должно быть внутри определения (то есть справа знака =
).Это должно быть:
anteilImKreis :: Double -> Double
anteilImKreis k =
let l = length(punkteImKreis)
in (fromIntegral (l)) / k^2
Кстати, вам не нужны круглые скобки вокруг аргумента функции, когда это всего один идентификатор.Я бы переписал это следующим образом:
anteilImKreis :: Double -> Double
anteilImKreis k =
let l = length punkteImKreis
in (fromIntegral l) / k^2
Кроме того, это выставляет другую ошибку.punkteImKreis
не список;это функция, которая возвращает список, что означает, что вы не можете напрямую получить его length
.Я предполагаю, что вы имели в виду следующее:
anteilImKreis :: Double -> Double
anteilImKreis k =
let l = length (punkteImKreis k)
in (fromIntegral l) / k^2