【发布时间】:2012-08-01 08:30:44
【问题描述】:
我使用 gtk2hs 和 glade 创建了一个 GUI,然后将其传递给 main::IO() 中的 haskell 代码。然后我为 labels、buttons 和 entry 文本编写了一些 windows 代码。例如,
entry <- xmlGetWidget xml castToEntry "entry1"
applyButton <- xmlGetWidget xml castToButton "button1"
然后点击应用按钮后
onClicked applyButton $ do
number <- get entry entryText
将值传递给变量number
然后我写了一个这样的数字平方函数
sqr :: Int -> Int -> IO ()
sqr number = number * number
在 mainGUI 之后。
这行不通!!!!!!!
应该是这样的
I/p:在 GUI 中从用户那里获取一个数字
o/p: GUI中显示数字的平方
【问题讨论】:
-
抱歉,问题出在哪里?此外, sqr 不是很好的类型。你的意思是
sqr :: Int -> Int -> Int? -
@JoachimBreitner 抱歉,我之前不清楚。希望现在很清楚......是的,我的意思是一样的......
-
也许 this IO tutorial 或众多 monad tutorials 之一将是一个很好的下一步。
-
看来你想要
sqr number = print (number*number)?这行得通,但最好将计算与 I/O 分开,sqr :: Int -> Int -> Int; sqr x = x*x和print (sqr number)当你想打印它时。