Когда вы вызываете isTriangle
в Main1.hs, вы называете его с большой буквы «I».
Убедитесь, что ваша заглавная буква совпадает, поскольку Haskell чувствителен к регистру, и убедитесь, что функции начинаются с символа нижнего регистра, так как это обязательно.
Правка - округление других ошибок
Main1.hs:
import System.Environment
import Number1
main :: IO()
main = do
args<-getArgs
{- Ideally you should check that there are at least 3 arguments
before trying to read them, but that wasn't part of your
question. -}
let a = read (args !! 0) -- read converts [Char] to a number
let b = read (args !! 1)
let c = read (args !! 2)
if (isTriangle a b c) then putStrLn "True"
else putStrLn "False"
Number1.hs:
module Number1(isTriangle) where
{- It's always best to specify the type of a function so that both you and
the compiler understand what you're trying to achieve. It'll help you
no end. -}
isTriangle :: Int -> Int -> Int -> Bool
isTriangle x y z = if x*x+y*y >= z*z then True
else False