Краткая нотация if-then-else в do-блоках в Haskell

Я не могу понять, как заставить работать сжатую нотацию if-then-else, упомянутую в [ http://hackage.haskell.org/trac/haskell-prime/wiki/DoAndIfThenElse ]. Это работает,

import System.Environment
main = do
    args <- getArgs
    if (args !! 0) == "hello"
        then
            print "hello"
        else
            print "goodbye"

, но это не так, и вставка указанной точки с запятой (см. Ссылку) просто приводит к ошибкам синтаксического анализа для меня.

import System.Environment
main = do
    args <- getArgs
    if (args !! 0) == "hello" then
        print "hello"
    else
        print "goodbye"

13
задан gatoatigrado 24 May 2011 в 22:35
поделиться