GHCIバージョン8.0.1以降、let
REPLで関数を定義する必要はなくなりました。
したがって、これは問題なく機能するはずです。
λ: addTwo x y = x + y
λ: addTwo 1 2
3
λ: :t addTwo
addTwo :: Num a => a -> a -> a
Haskellの型推論は、floatでも機能する一般化された型を提供します。
λ: 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