完成后停止程序退出

时间:2015-01-20 02:23:01

标签: windows haskell

我是Haskell的新手并尝试在Windows机器上进行设置。我得到它编译,但当我运行.exe文件时,程序运行并立即退出,几乎没有显示输出。

以下是我创建的示例代码

module Main where
m = 2 * n
n = f 4

--functions
f::Int -> Int
f x = 2 * x

g::Int -> Int -> Int
g x y = 2 * x * y

main = do
x <-getChar --used to pause program

print m
print $ f m
print $ g m n

我使用getChar暂停程序,直到按下某个键。我一直试图弄清楚如何在打印陈述之后做一些关键事件退出。我怎么能这样做,有没有更好的方法?

1 个答案:

答案 0 :(得分:4)

如果您通过单击它在Windows中运行程序,那么它将获得自己的终端窗口,该窗口本身会在程序执行后退出。我想这就是你所做的,或类似的。

但是如果您改为使用DOS提示启动一个终端窗口,并从那里运行程序,那么该程序结束后该窗口将继续存在并且您可以看到您的输出。

您也可以使用:main命令从GHCi或WinGHCi内部运行程序。

最后,您的x <- getChar 几乎几乎main结尾处工作,但是规则是do块中的最后一个语句必须是表达式,因此它不能绑定变量。但您没有使用x进行任何操作,因此您只需删除x <-部分:

main = do
    print m
    print $ f m
    print $ g m n
    getChar --used to pause program