如您所知,foldl函数定义为:
foldl :: (a -> b -> a ) -> a -> [b] -> a
我想将该函数重写为未经过验证的函数
我试过这个:
foldl :: ( (a-> b-> a) , a , [b] ) -> a
这是对的吗?也许这不重要,但我会写一个考试,我很确定这将是要完成的任务之一。
感谢您的期待!
答案 0 :(得分:3)
嗯,这肯定是foldl
的一种未经证实的形式。但是,你可以做更多的水平 - 我可以“完全不受欢迎的形式”
foldl'' :: ( ((a,b) -> a), a, [b] ) -> a
不仅函数本身,而且函数参数也不复存在。 OTOH,只是在函数上调用uncurry
只会产生
foldl''' :: ( (a->b->a), a ) -> [b] -> a
因此也可能被称为“无证foldl
”,但它在考试中肯定不是理想的解释。