停止程序在完成后退出
Stopping a program from exiting after completion
我是 Haskell 的新手,正在尝试在 windows 机器上进行设置。我让它编译但是当我 运行 .exe 文件时,程序 运行s 并立即退出,几乎没有显示输出。
下面是我创建的示例代码
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 暂停程序,直到按下某个键。我一直在尝试弄清楚如何在打印语句之后执行类似退出的操作。我该怎么做,还有更好的方法吗?
如果您 运行 您的程序在 Windows 中通过单击它,那么它会获得一个终端 window 自己的终端,一旦程序运行,它就会自行退出。我想这就是你所做的,或类似的。
但是如果你改为启动一个带有 DOS 提示符的终端 window,然后从那里 运行 程序,那么 window 将在程序结束后继续存在,你可以看到你的输出。
您还可以使用 :main
命令从 GHCi 或 WinGHCi 内部 运行 程序。
最后,您的 x <- getChar
可以 几乎 在 main
结束时工作,但是有一条规则是 [=14= 中的最后一个语句] 块必须是一个表达式,所以它不能绑定一个变量。但是你没有使用 x
做任何事情,所以你可以删除 x <-
部分:
main = do
print m
print $ f m
print $ g m n
getChar --used to pause program
我是 Haskell 的新手,正在尝试在 windows 机器上进行设置。我让它编译但是当我 运行 .exe 文件时,程序 运行s 并立即退出,几乎没有显示输出。
下面是我创建的示例代码
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 暂停程序,直到按下某个键。我一直在尝试弄清楚如何在打印语句之后执行类似退出的操作。我该怎么做,还有更好的方法吗?
如果您 运行 您的程序在 Windows 中通过单击它,那么它会获得一个终端 window 自己的终端,一旦程序运行,它就会自行退出。我想这就是你所做的,或类似的。
但是如果你改为启动一个带有 DOS 提示符的终端 window,然后从那里 运行 程序,那么 window 将在程序结束后继续存在,你可以看到你的输出。
您还可以使用 :main
命令从 GHCi 或 WinGHCi 内部 运行 程序。
最后,您的 x <- getChar
可以 几乎 在 main
结束时工作,但是有一条规则是 [=14= 中的最后一个语句] 块必须是一个表达式,所以它不能绑定一个变量。但是你没有使用 x
做任何事情,所以你可以删除 x <-
部分:
main = do
print m
print $ f m
print $ g m n
getChar --used to pause program