気楽にHaskellでHelloWorld
初めてJava触った時プロジェクトとか作ってないよ!!!
ということでもう少し気楽にHelloWorldしたかった
code:Main.hs
main = do
putStrLn "Hello Haskell"
なるほど?????
これだけで動くの???
動いたわ
code:Command
$ stack runghc Main.hs
ちょっとコマンドが違ったので乗っけておく
やっぱり putStrLn は標準出力っぽいね
code:Command
$ stack ghc XXX
で実行ファイル化も出来るらしい
やってみたら出来た
試しにMain.hsのインデント削っても動いたのが…
???
getLineがなぜかpurStrLnより先に走ってる…
getContentsがまともに動かん…
こんな感じのエラーが出る
Main.hs: <stdin>: hGetContents: invalid argument (invalid byte sequence)
よくわからないが、gitBashで動かしてるのが悪さしてるっぽい
cmdでコマンドいい感じに動いた
文字コード的な問題かな??
IDE(VSCode)使ってるとはいえ、cmdで実行してると研修の時思い出して楽しい
code:var.hs
import Data.IORef
main = do
v <- newIORef 0
print v
こけた。どうも変数は標準出力出来ないらしい
code:var.hs
main = do
v <- newIORef 0
c <- readIORef v
putStrLn c --ここでこける。cの中身が数値だから型エラー起こす
print c
型推論はあるけど、型の強制力は強いらしい
code:var.hs
main=do
let tmp = "var"
putStrLn tmp --ここでは、var
print tmp --ここでは、"var"
letとletを付けないやつの違いはなんだ????
楽しいけど疲れてきた…関数とかは明日やろう…
環境構築から含めると合計で2.0hぐらい
まぁ、集中力もそんなもんだ