是什么原因造成的;没有因使用“print'&引用;尝试在Haskell中为函数指定类型时出错?
写入以下内容时出现错误:是什么原因造成的;没有因使用“print'&引用;尝试在Haskell中为函数指定类型时出错?,haskell,typing,Haskell,Typing,写入以下内容时出现错误: definition x = x definition :: Int -> Int 您正在GHCi中逐行输入代码 第一行定义了您的函数 第二行要求打印,这是不可能的 不要在GHCi中逐行编写代码。将其写入文件,然后加载到GHCi中。您首先在此处定义了一个函数定义x=x。在第二行中,有一个表达式definition::Int->Int。但是函数不是Show的实例,因此解释器无法打印函数 但是,看起来第二行是要添加到函数中的签名。您可以使用:{和:}编写多行语句,如
definition x = x
definition :: Int -> Int
您正在GHCi中逐行输入代码 第一行定义了您的函数 第二行要求打印,这是不可能的
不要在GHCi中逐行编写代码。将其写入文件,然后加载到GHCi中。您首先在此处定义了一个函数
定义x=x
。在第二行中,有一个表达式definition::Int->Int
。但是函数不是Show
的实例,因此解释器无法打印函数
但是,看起来第二行是要添加到函数中的签名。您可以使用:{
和:}
编写多行语句,如:
Prelude> :{
Prelude| definition :: Int -> Int
Prelude| definition x = x
Prelude| :}
序曲>:{
前奏曲|定义::Int->Int
前奏曲|定义x=x
前奏曲:}
您不能显示定义
本身,因为这是一个函数,您可以显示定义5
的结果。这里出现错误的原因是,您没有在多行语句中定义函数,而且签名应该写在定义之前。@WillemVanOnsem,实际上不要求签名在定义之前(我刚刚学到)。否则做是非常不传统的