현재 GHCI 버전 8.0.1 , let더 이상 REPL에 함수를 정의 할 필요가 없습니다.
따라서 이것은 당신에게 잘 작동합니다 :
λ: addTwo x y = x + y
λ: addTwo 1 2
3
λ: :t addTwo
addTwo :: Num a => a -> a -> a
Haskell의 형식 유추는 다음과 같이 수레에 적용되는 일반화 된 타이핑을 제공합니다.
λ: addTwo 2.0 1.0
3.0
직접 입력해야하는 경우 여러 줄 입력 let과 함께 사용해야 :set +m합니다 ( GHCI에서 여러 줄 입력을 활성화 하는 데 사용).
λ: let addTwo :: Int -> Int -> Int
| addTwo x y = x + y
|
λ: addTwo 1 2
3
그러나 Int다형성이 아닌 타이핑 때문에 아무것도 전달하지 않으면 오류가 발생합니다 .
λ: addTwo 2.0 1.0
<interactive>:34:8: error:
• No instance for (Fractional Int) arising from the literal ‘2.0’
• In the first argument of ‘addTwo’, namely ‘2.0’
In the expression: addTwo 2.0 1.0
In an equation for ‘it’: it = addTwo 2.0 1.0