是否可以在用户定义的函数上使用反向函数?
所以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而没有结果。
答案 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
这有帮助吗?