じゃあ質問。
やさしいHaskellのp107から。
myIf :: Bool -> a -> a -> a
myIf True t e = t
myIf False t e = e
main = do myif (True) (putStrLn "then") (putStrLn "else")
という関数を定義して、このプログラムがthenだけ表示されれば、
アクションputStrLn "elseは評価されていないことが分かります。
とあるんだけれど、何が言いたいのか良く分からん。
このプログラムを実行したら、thenが表示されるのは当たり前じゃないのか?
これのどこが評価に必要な式だけが評価されることの証拠になるんだ?
Cの
if ( True == True){
printf("then\n");
}
printf("else\n");
とどこが違うんだ。
これも、printf("else\n");は評価されて無いぞ。
それともif文を実装した点に意味があるって事?