以下のよう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