2013-02-26 91 views
-3

我想写一个函数打印一个语句并调用另一个函数,但我有一些麻烦,定义它是什么类型给它。这是我到目前为止。Haskell函数

代码:

bad_input :: --dont know what goes here 
bad_input = putStrLn "Bad Input" 
      evaluate_input  
+14

http://learnyouahaskell.com – 2013-02-26 05:16:04

+1

得到'ghci'它会帮助你学习过程 – pyCthon 2013-02-26 05:16:33

+9

你正在使用StackOverflow来达到一个错误的目的。你已经问过几个非常不切实际的问题,其中没有一个问你是否曾经阅读过至少一本书或甚至是关于Haskell的教程。 – 2013-02-26 07:16:29

回答

1

首先,你不需要类型签名,哈斯克尔将在推断它为您几乎所有的情况。其次,你需要在=的正确视力表达,但你有两个不相关的表达 - 你需要以某种方式将他们绑在一起。这导致了第三点:IO与命令式语言完全不同,因为你需要用称为IO的monad将你与“真实世界”的交互包装起来,因为Haskell是一种非严格语言(这意味着可以执行“只是在时间上“ - 对输入/输出不利)和纯语言(这意味着一旦它们被计算,值就不会改变)。

我可以为你写这段代码,但是我觉得这样做会比弊大于弊,让你比以前更困惑。所以请按照Cat Plus Plus提供的建议阅读http://learnyouahaskell.com/(或http://book.realworldhaskell.org/)以获得真正的理解。从简单的事情开始,在Haskell中IO并不容易。