私はHaskellを初めて使用し、Haskellで2つの関数の結果をどのように出力できるか疑問に思っています.C ++で次のようにします:
cout << f() << g();
またはC#で:
Console.WriteLine(f() + " " + g());
Haskellでは、次のようなことを試しました
main =
--putStr ( show $ square 3 )
putStr ( show $ fibSeries 12 )
square :: Int -> Int
square x = x * x
fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = fib (n - 1) + fib (n - 2)
fibSeries :: Int -> [Int]
fibSeries x = map fib [0..x]
しかし、コンパイル時にエラーが発生したため、最初のコマンドをコメントする必要がありました。
エラーは次のとおりです。
src\Main.hs:21:5:
Couldn't match expected type `(String -> IO ()) -> String -> t0'
with actual type `IO ()'
The function `putStr' is applied to three arguments,
but its type `String -> IO ()' has only one
In the expression:
putStr (show $ square 3) putStr (show $ fibSeries 12)
In an equation for `main':
main = putStr (show $ square 3) putStr (show $ fibSeries 12)