Haskell 在另一个函数结果上反转函数?

Haskell 在另一个函数结果上反转函数?,haskell,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] 我正在撤销一份表格编号为的清单。。。然后用表格编号将其倒过来 我也尝试过foldl,但没有结果 form_number_front d = re

是否可以对用户定义的函数使用反向函数

所以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]
我正在撤销一份表格编号为的清单。。。然后用表格编号将其倒过来

我也尝试过foldl,但没有结果

form_number_front d = reverse [d form_number_back]
这有很多问题

首先,
form\u number\u back
是一个函数,
d
是您希望传递给该函数的数字。函数必须出现在其参数的左侧:

form_number_front d = reverse [form_number_back d]
更重要的是,
reverse
用于撤销列表。但是调用
form\u number\u back
的结果是一个数字;您似乎想反转该数字中的数字

现在,您可以尝试在
form\u number\u back
将列表转换为数字之前反转列表:

form_number_front d = form_number_back (reverse d)
您可以尝试重写
表单_number _back
以按所需顺序折叠列表:

form_number_front d = foldl (flip mult_add) 0 d

这有帮助吗?

你可以对任何列表应用
反向
,不管它来自哪里。你知道为什么表单编号前d=反向[表单编号后]不起作用吗。。它不断出现如下错误:1:1:No instance for(Show([b0]->b0)),这是由于使用了“print”可能的修复方法:在交互式GHCi命令的stmt中为(Show([b0]->b0))添加实例声明:print itWell,是的,这是因为您试图用一个元素反转列表,函数
返回表单编号
。尝试将
form\u number\u back
应用于参数。这里的问题是应用反向。您希望
[d form\u number\u back]
的输出是什么?您可以编写一个函数,将int转换为字符串,将其反转并转换回。只是一个提示,字符串实际上只是一个字符列表。所以字符串已经是一个列表了。查找
show
read
进行转换。