2017-06-28 66 views
0

什麼是最簡單的方法來獲取一些值(是/否,數字)到一個Haskell程序。這些值應該被綁定到一些變量,並且應該根據以前的輸入來詢問其他問題。什麼是最簡單的方式來查詢Haskell中的一些輸入值

我想解決一個小問題,我認爲Haskell是最合適的。特別是爲了擴展功能。另外我還試圖學習這門語言(我對Haskell是新手,但對Prolog有一些經驗,所以對函數式編程有一些想法)。

我正在檢查他所有與GUI開發相關的東西,但實際上這對我所需要的東西是一種矯枉過正。輸入應該是對一些依賴於執行狀態的問題的迴應。

我希望這已經夠清楚了。

編輯:

我想有一些 「PO-UPS」 像這樣的。並非全部都是,但只是在需要時彈出。

enter image description here

+3

的可能的複製[我如何使用函數getline或getchar函數在Haskell?](https://開頭stackoverflow.com/questions/37144229/how-can-i-use-getline-or-getchar-in-haskell) – amalloy

+1

'main = do x < - readLn; print(x + 100)' – chi

+0

你可以定義一個免費的monad來模擬交互... https://hackage.haskell.org/package/transformers-free-1.0.1/docs/Control-Monad-Trans-Free .html –

回答

1

感覺就像你的假設一點點的是,Haskell是如Javascript這裏。

也就是說,使用prompt("Are you hungry or thirsty?")在瀏覽器(如Chrome)中顯示「彈出窗口」非常簡單,但這僅僅是因爲提示功能建立在瀏覽器提供的window對象的頂部允許開發人員進入內置瀏覽器的操作系統的窗口堆棧。

Haskell默認提供的「免費」功能要少得多。也就是說,如果你想顯示一個彈出窗口,你將不得不使用一些庫來顯示一些彈出窗口。

這是一個比它可能看起來更大的問題。這與任何其他批處理式編程語言中的相同問題非常相似。你將如何在Java或Ruby中執行此操作?那麼,你需要找到一個支持它的庫。

對於很多語言而言,跨操作系統跨平臺的一個這樣的庫就是wxWidgets。它是用C++編寫的,但Haskell和許多其他語言都有綁定/庫。哈斯克爾圖書館被稱爲wxhaskell:https://wiki.haskell.org/WxHaskell

祝你好運,不要指望它是一個簡單的道路必然。

如果你在學習Haskell基礎知識的興趣,隨意看看本教程中我幫作者:http://happylearnhaskelltutorial.com

+0

感謝您的澄清。除了像Gtk2Hs,Haskell/GUI或Threepenny-gui,Autoforms之外,您的解決方案也是我所發現的。格萊德還將幫助設計GUI並進行RFP。但他們都爲我所尋找的東西帶來了不必要的開銷。看起來WxHaskell實際上是關閉了什麼 - 從我想要達到的目標和所需的努力來看。 –

相關問題