另一个功能结果的反转功能?

时间:2012-06-12 01:34:20

标签: haskell

是否可以在用户定义的函数上使用反向函数?

所以usermade函数会给你一个结果,然后我想反转那个结果。

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而没有结果。

1 个答案:

答案 0 :(得分: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

这有帮助吗?