module Main where
import System.Environment
main :: IO ()
main = do
args <- getArgs
putStrLn ("Hello, " ++ args !! 0)
ghc -o hello --make file1.hs
./hello r
module Main where
import System.Environment
main :: IO ()
main = do
args <- getArgs
putStrLn ("Hello, " ++ args !! 0 ++ " " ++ args !! 1)
ghc -o hello2 --make file1_1.hs
./hello2 r y
- 標準入力を整数として受け取って計算したりする "file1_2.hs"
- argsは、文字列のリスト
- これをreadすると何かしらのタイプに変えられる
- mapをかけることですべての引数をそれぞれ何かしらのタイプに変え、そのリストを得る
- そのタイプが変わったリストに関数 sum を適用すると、sumが働くべきタイプに変えるべきであることが伝わり、そのようにできる
- sum関数が返す数値タイプの結果をshowで文字列に戻し標準出力する
- コメントアウトしているいろいろな処理も可能。letを使うこともできる。関数mydoubleを定義してそれを使うこともできる
module Main where
import System.Environment
import System.IO
mydouble :: Integral a => a -> a
mydouble x = x * 2
main :: IO ()
main = do
args <- getArgs
putStrLn $ show $ sum $map read args
ghc -o calc --make file1_2.hs
./calc 3 5