1
我有以下代码:F#类型的选项问题
let rec sums1 n = function
| (a,b,x:int array,s,k) when (s<n&&b=x.Length-1) -> []//None
| (a,b,x:int array,s,k) when (a=b&&((x.Length-1)=b))->[]// None
| (a,b,x,s,k) when (s=n) -> (Array.toList(Array.sub x a k))
| (a,b,x,s,k) when (s<n) -> sums1 n (a,b+1,x,s+x.[b+1],k+1)
| (a,b,x,s,k) when (s>n) -> sums1 n (a+1,b,x,s-x.[a],k-1)
| (a,b,c,d,e) -> []//None
let neco n s =match (sums1 n (0,-1,s,0,0)) with
| [] ->None
| x ->Some x
let ssum n xs:list<int> = neco n (List.toArray xs)
它是如何可能的是,编译器不会允许我从类型选项列表< INT <>>的SSUM返回值。我会返回这种类型,而不是别的。 有人有任何想法吗? 非常感谢。
非常感谢你;) – 877 2010-11-07 13:32:06