Function Haskell Curry函数和括号

Function Haskell Curry函数和括号,function,haskell,currying,Function,Haskell,Currying,嗨,这可能是一个非常简单的问题,但我有问题。我试着用下面的公式做一个根函数: roots a b c = ((-b + t)/a', (-b - t)/a') where t = b ^ 2 - 4 * a * c a' = 2 * a 我现在正试图让它成为一个咖喱函数,但我似乎无法让它工作这就是我所说的: roots:: Double -> (Double -> (Double -> Double)) 有人能帮我吗 谢谢 据我所知(但我不是专家,到目前为止,我刚

嗨,这可能是一个非常简单的问题,但我有问题。我试着用下面的公式做一个根函数:

 roots a b c = ((-b + t)/a', (-b - t)/a')
 where
 t  = b ^ 2 - 4 * a * c
 a' = 2 * a
我现在正试图让它成为一个咖喱函数,但我似乎无法让它工作这就是我所说的:

roots:: Double -> (Double -> (Double -> Double))
有人能帮我吗

谢谢

据我所知(但我不是专家,到目前为止,我刚刚上了几节关于Haskell的课),获取3个输入参数并生成一个输出(如您的示例中所示)的函数应编写为:

roots:: Double -> Double -> Double -> Double
链中的最后一个元素(forth Double)是返回类型,前面的所有元素都是输入参数类型。 据我所知(但我不是专家,到目前为止,我刚刚上了几节关于Haskell的课),这个函数可以获得3个输入参数并生成一个输出(如您的示例中所示),它的编写方式如下:

roots:: Double -> Double -> Double -> Double
链中的最后一个元素(forth Double)是返回类型,前面的所有元素都是输入参数类型。 据我所知(但我不是专家,到目前为止,我刚刚上了几节关于Haskell的课),这个函数可以获得3个输入参数并生成一个输出(如您的示例中所示),它的编写方式如下:

roots:: Double -> Double -> Double -> Double
链中的最后一个元素(forth Double)是返回类型,前面的所有元素都是输入参数类型。 据我所知(但我不是专家,到目前为止,我刚刚上了几节关于Haskell的课),这个函数可以获得3个输入参数并生成一个输出(如您的示例中所示),它的编写方式如下:

roots:: Double -> Double -> Double -> Double
链中的最后一个元素(forth Double)是返回类型,前面的所有元素都是输入参数类型。
在Haskell中,函数会自动转换。所以你不必做什么特别的事情来做咖喱

函数根的类型为
roots::Double->Double->Double->(Double,Double)
。类似这样的内容将进行类型检查:
由于使用了curry,让a=roots 3.0


如果您的
函数没有被current,那么它很可能有这样一种类型:
根::(Double,Double,Double)->(Double,Double)
,这不是编写函数定义的正确方法。

在Haskell中,函数是自动current的。所以你不必做什么特别的事情来做咖喱

函数根的类型为
roots::Double->Double->Double->(Double,Double)
。类似这样的内容将进行类型检查:
由于使用了curry,让a=roots 3.0


如果您的
函数没有被current,那么它很可能有这样一种类型:
根::(Double,Double,Double)->(Double,Double)
,这不是编写函数定义的正确方法。

在Haskell中,函数是自动current的。所以你不必做什么特别的事情来做咖喱

函数根的类型为
roots::Double->Double->Double->(Double,Double)
。类似这样的内容将进行类型检查:
由于使用了curry,让a=roots 3.0


如果您的
函数没有被current,那么它很可能有这样一种类型:
根::(Double,Double,Double)->(Double,Double)
,这不是编写函数定义的正确方法。

在Haskell中,函数是自动current的。所以你不必做什么特别的事情来做咖喱

函数根的类型为
roots::Double->Double->Double->(Double,Double)
。类似这样的内容将进行类型检查:
由于使用了curry,让a=roots 3.0


如果你的
root
函数没有被currend,那么它可能有这样一种类型:
root::(Double,Double,Double)->(Double,Double)
这不是编写函数定义的正确方法。

你的函数已经被currend:
root::Double->Double->Double->(Double,Double)
,代码中的缩进是错误的<代码>其中应该有更多的缩进,并且
t
a'
应该有比
其中
更大的缩进。您的函数已经出现了:
根::Double->Double->Double->(Double,Double)
顺便说一下,代码中的缩进是错误的<代码>其中应该有更多的缩进,并且
t
a'
应该有比
其中
更大的缩进。您的函数已经出现了:
根::Double->Double->Double->(Double,Double)
顺便说一下,代码中的缩进是错误的<代码>其中应该有更多的缩进,并且
t
a'
应该有比
其中
更大的缩进。您的函数已经出现了:
根::Double->Double->Double->(Double,Double)
顺便说一下,代码中的缩进是错误的<代码>其中应该有更多的缩进,而
t
a'
应该有比
其中
的缩进大的缩进。不,这不起作用,你还需要括号来告诉你进入了一个不同的功能。对不起,我错了!你不必有括号!不,这不起作用,你还需要括号里的内容来说明你要进入一个不同的函数。对不起,我错了!你不必有括号!不,这不起作用,你还需要括号里的内容来说明你要进入一个不同的函数。对不起,我错了!你不必有括号!不,这不起作用,你还需要括号里的内容来说明你要进入一个不同的函数。对不起,我错了!你不必有括号!