小编Jav*_*ini的帖子

模式匹配多个变量

我是F#的新手,并没有在任何地方看到如何正确地执行以下操作

let fun1 a b =
match a b with
| a + b > 0 -> fun2
| a + b < 0 -> fun3
Run Code Online (Sandbox Code Playgroud)

我必须使用模式匹配 - 做作业 - 但我不知道如何正确地做到这一点.我以为我可以使用如下元组:

let fun1 (a,b) =
match (a,b) with
| (a,b) when a + b > 0 -> fun2
| (a,b) when a + b < 0 -> fun3
Run Code Online (Sandbox Code Playgroud)

但这也行不通.我该怎么办?

f# tuples pattern-matching

11
推荐指数
2
解决办法
2700
查看次数

"这个表达式应该有类型单位"但我希望它是布尔值

我正在尝试创建一个函数,将元组与元组数组的值进行比较.我需要这个返回一个布尔值,但是VS2013一直告诉我:"这个表达式应该有'unit'类型,但是类型'bool'"

let compare (i,j,a,(x : (int*int*int) array)) =
    for q in 0 .. x.GetLength(0) do  
        match (i,j,a,x) with
        | (i,j,a,x) when (i,j,a) = x.[q] -> true
        |  _ -> false
Run Code Online (Sandbox Code Playgroud)

还尝试将值作为两个参数给出,但它也不起作用:

let compare (i,j,a) (x : (int*int*int) array) =
    for q in 0 .. x.GetLength(0) do  
        match (i,j,a) with
        | x.[q] -> true
        |  _ -> false
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!

f# types tuples unit-type

2
推荐指数
1
解决办法
5294
查看次数

标签 统计

f# ×2

tuples ×2

pattern-matching ×1

types ×1

unit-type ×1