Haskell ~入出力~
入出力
コード
main = do out <- getLine -- input: out putStrLn (out ++ "は大事")
% stack build;stack exec project1-exe project1-0.1.0.0: unregistering (local file changes: src/Lib.hs) project1-0.1.0.0: build (lib + exe) Preprocessing library project1-0.1.0.0... [1 of 1] Compiling Lib ( src/Lib.hs, .stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Lib.o ) Preprocessing executable 'project1-exe' for project1-0.1.0.0... [1 of 1] Compiling Main ( app/Main.hs, .stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/project1-exe/project1-exe-tmp/Main.o ) [Lib changed] Linking .stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/project1-exe/project1-exe ... project1-0.1.0.0: copy/register Installing library in /.stack-work/install/x86_64-osx/lts-8.11/8.0.2/lib/x86_64-osx-ghc-8.0.2/project1-0.1.0.0-AckhfDVtQB568iPvGBSrt7 Installing executable(s) in /.stack-work/install/x86_64-osx/lts-8.11/8.0.2/bin Registering project1-0.1.0.0... % stack exec project1-exe hellowordl hellowordlは大事
do式
コードのレイアウト
do式の複数の式を束ねる構文である.Javaのブロック構文に相当する.
do式のように複数の式を束ねる構文では,複数の式のインデントを揃えることが属するブロックを表す.
この規則を,レイアウト
,またはオフサイドルール
という.
do式と遅延評価
Haskellの特徴は遅延評価である.よって,命令型のプログラム言語のように上から順に実行されるわけではない.do式を使うと,上から処理されていく.
参考
ふつうのHaskell
ここの記事が小さく良くまとまって書いてある. Haskellで競技プログラミング IO編 - Qiita