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'
应该有比其中
的缩进大的缩进。不,这不起作用,你还需要括号来告诉你进入了一个不同的功能。对不起,我错了!你不必有括号!不,这不起作用,你还需要括号里的内容来说明你要进入一个不同的函数。对不起,我错了!你不必有括号!不,这不起作用,你还需要括号里的内容来说明你要进入一个不同的函数。对不起,我错了!你不必有括号!不,这不起作用,你还需要括号里的内容来说明你要进入一个不同的函数。对不起,我错了!你不必有括号!