【发布时间】:2011-03-03 19:46:21
【问题描述】:
我正在尝试编写一个简单的递归函数来查看列表并返回一对整数。这很容易用 c/c++/java 编写,但我是 ocaml 的新手,所以由于类型冲突很难找到解决方案
它应该像..
let rec test p l = ... ;;
val separate : (’a -> bool) -> ’a list -> int * int = <fun>
test (fun x -> x mod 2 = 0) [-3; 5; 2; -6];;
- : int * int = (2, 2)
所以问题是我如何递归地返回元组的值..
【问题讨论】:
-
你能提供更多关于这个函数应该返回什么的细节吗?这对整数代表什么?
-
所以它应该返回一对整数作为 (x,y) ,它是 ocaml 中的元组,我面临的唯一问题是元组计算.. 所以它就像,如果列表的元素更少then some number then (x+1, y) else (x, y+1) 所以返回值将是 (x,y) 其中 x 是大于某个数字且 y 小于