HaskellにおけるMainについて

Haskell始めました

 数学を勉強したい気持ちと関数型を学びたいという気持ちの二つがあり、知り合いに勧められてHaskellを始めました。 現在、The Haskell Road to Logic, Maths and Programmingをゆっくり翻訳しながら読んでおります。 基礎の基礎ですが、そこでわからないことがあったのでメモ代わりに書きます。

スクリプトファイル

これまでghciでの動きしか見ていなかったので、スクリプトファイルの実行は試していませんでした。 Atomを起動し、いざ書こうとするも、ただ数字を書くのではなくmainが必要とのことでした。

module Main where

main :: IO ()
main = putStrLn "Hello World"

module Main where

自作のモジュール Mainを定義したものです。where句は補助関数定義として活用しますが今回はHello Worldを出すだけなので定義する補助関数はありません この一行はなくても問題ありません。

main :: IO

main関数にIO型モナドの型を与えます。 今現在、僕がモナドについて理解度が低いので説明はこれぐらいにしてください。

main = putStrLn "Hello World"

main関数の処理を書きます。これをアクションと呼び、今回では Hello Worldを出力します。