Ocaml List.iter&;List.fold_right一起使用
我正在尝试使用列表模块中的fold_right和List.iter函数。有没有办法把它们结合起来使用呢Ocaml List.iter&;List.fold_right一起使用,ocaml,Ocaml,我正在尝试使用列表模块中的fold_right和List.iter函数。有没有办法把它们结合起来使用呢 let step nfa start transition = let transition_list = get_transition nfa in List.iter ( fun state -> List.fold_right (fun ct nl -> if ((get_pre_trans transition)= state &&a
let step nfa start transition =
let transition_list = get_transition nfa in
List.iter ( fun state ->
List.fold_right (fun ct nl ->
if ((get_pre_trans transition)= state && (get_trans ct) = transition) then
(get_post_transition transition)::nl
else
nl
) transition_list []
) start
;;
**get_xxx函数从元组中获取值,其中有转换前、转换值和转换后
返回错误:
错误:此表达式具有“a”列表类型,但应为unit类型的表达式
不知道该做什么。传递给
iter
的函数体只包含一个表达式,即对折叠_right
的调用,其计算结果为列表
类型的值,但iter
签名要求传递一个返回单位
类型值的函数。这基本上就是编译器试图告诉你们的。如果您对计算的右折
值不感兴趣,则可以使用忽略
函数忽略它,该函数接受任何类型的值,并返回类型为单位
的值。另一方面,如果你不想放弃它,那么你就不应该使用iter
,而应该使用fold\u right
或者更好的方法是fold\u left
最后,回答你的问题,是的,有多种方法可以将它们结合在一起,但通常,如果你在iter内部应用折叠,你就做错了。你传递给
iter
的函数体只包含一个表达式,即调用折叠右
,其计算结果为list
类型的值,但iter
签名要求您传递一个函数,该函数返回unit
类型的值。这基本上就是编译器试图告诉你们的。如果您对计算的右折
值不感兴趣,则可以使用忽略
函数忽略它,该函数接受任何类型的值,并返回类型为单位
的值。另一方面,如果你不想放弃它,那么你就不应该使用iter
,而应该使用fold\u right
或者更好的方法是fold\u left
最后,回答你的问题,是的,有多种方法可以将它们结合在一起,但通常,如果你在iter内部应用折叠,你就做错了。你传递给
iter
的函数体只包含一个表达式,即调用折叠右
,其计算结果为list
类型的值,但iter
签名要求您传递一个函数,该函数返回unit
类型的值。这基本上就是编译器试图告诉你们的。如果您对计算的右折
值不感兴趣,则可以使用忽略
函数忽略它,该函数接受任何类型的值,并返回类型为单位
的值。另一方面,如果你不想放弃它,那么你就不应该使用iter
,而应该使用fold\u right
或者更好的方法是fold\u left
最后,回答你的问题,是的,有多种方法可以将它们结合在一起,但通常,如果你在iter内部应用折叠,你就做错了。你传递给
iter
的函数体只包含一个表达式,即调用折叠右
,其计算结果为list
类型的值,但iter
签名要求您传递一个函数,该函数返回unit
类型的值。这基本上就是编译器试图告诉你们的。如果您对计算的右折
值不感兴趣,则可以使用忽略
函数忽略它,该函数接受任何类型的值,并返回类型为单位
的值。另一方面,如果你不想放弃它,那么你就不应该使用iter
,而应该使用fold\u right
或者更好的方法是fold\u left
最后,回答你的问题,是的,有很多方法可以将它们结合在一起,但通常,如果你在国际热核实验堆内部应用折叠,你就做错了。你的很多代码都缺失了,没有它我们无法帮到你。您在哪里申报了新列表或获取交易?也许你应该检查这些值的类型。你的很多代码都丢失了,没有它我们就帮不了你。您在哪里申报了新列表或获取交易?也许你应该检查这些值的类型。你的很多代码都丢失了,没有它我们就帮不了你。您在哪里申报了新列表或获取交易?也许你应该检查这些值的类型。你的很多代码都丢失了,没有它我们就帮不了你。您在哪里申报了新列表或获取交易?也许你应该检查这些值的类型。那么,如果我想取回列表,我应该将iter放在折叠中吗?在这种情况下,你需要在折叠中折叠。你可以给出一个使用list.iter与list.fold的示例吗?我想我可以在启动状态列表中使用List.iter,因为我没有修改任何这些值。我只是想在内部函数中使用这些值。因此,如果我想拿回列表,我应该将iter放在折叠中吗?在这种情况下,您需要将折叠放在折叠中,您可以给出一个何时使用list.iter与list.fold的示例吗?我想我可以在启动状态列表中使用List.iter,因为我没有修改任何这些值。我只是想在内部函数中使用这些值。因此,如果我想拿回列表,我应该将iter放在折叠中吗?在这种情况下,您需要将折叠放在折叠中,您可以给出一个何时使用list.iter与list.fold的示例吗?我想我可以在启动状态列表中使用List.iter,因为我没有修改任何这些值。我只是想在内部函数中使用这些值。因此,如果我想得到列表,我应该将iter放在折叠中吗?在这种情况下,您需要在折叠中折叠。您可以给出一个何时使用list.ite的示例