2012-06-12 44 views
0

是否可以在用户定义的函数上使用反向函数?另一个函数结果的反向函数?

因此,用户自定义函数为您提供了一个结果,然后我想要反转该结果。

mult_add d s = d + 10*s 

form_number_back d = foldr mult_add 0 d 

功能扭转上述结果

form_number_front d = reverse [d form_number_back] 

我倒有一个form_number_back列表...然后反向回用form_number_front。

我也试过foldl没有结果。

+0

您可以将'reverse'应用于任何列表,无论它来自何处。 –

+0

以及你知道我为什么form_number_front d =反转[form_number_back]不工作..它不断想出这样的错误 :1:1: 没有实例(显示([B0] - > B0)) 产生使用'print' 可能的修正:添加一个实例声明(Show([b0] - > b0)) 在一个交互式GHCi命令中:print it – user1449653

+0

嗯,是的,那是因为你正在尝试用一个元素来反转列表,函数form_number_back。尝试将'form_number_back'应用于*参数。* –

回答

1
form_number_front d = reverse [d form_number_back] 

这有一些问题。

首先,form_number_back是一个函数,d是您希望传递给该函数的数字。该功能必须出现它的参数左:

form_number_front d = reverse [form_number_back d] 

更实质性的,reverse是扭转名单。但致电form_number_back的结果是号码;您似乎想要反转该号码中的数字。

现在,你可以尝试扭转名单form_number_back把它变成一个数字之前:

form_number_front d = form_number_back (reverse d) 

你可以尝试重写form_number_back折你想要的顺序列表:

form_number_front d = foldl (flip mult_add) 0 d 

这有帮助吗?

相关问题