Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parameters 将记录/类标签作为参数传递_Parameters_F#_Label_Parameter Passing_Labels - Fatal编程技术网

Parameters 将记录/类标签作为参数传递

Parameters 将记录/类标签作为参数传递,parameters,f#,label,parameter-passing,labels,Parameters,F#,Label,Parameter Passing,Labels,是否可以将记录或类标签作为参数传递给函数 我不确定这是描述我的问题/问题的最佳方式,也许这个例子能更好地说明这一点 这里我硬编码了一个函数来过滤列表,其中I.a等于v。是否有可能使i.a也可以通过 示例代码: type myrecord = { a : int; b : float } " " let filter1(记录列表:列表)v= recordList |>List.filter(乐趣i->i.a=v) 我怎样才能使I.a通行?例如,我可以调用函数并对

是否可以将记录或类标签作为参数传递给函数

我不确定这是描述我的问题/问题的最佳方式,也许这个例子能更好地说明这一点

这里我硬编码了一个函数来过滤列表,其中
I.a
等于
v
。是否有可能使
i.a
也可以通过

示例代码:

type myrecord =
    {
    a : int;
    b : float
    }
"

"

let filter1(记录列表:列表)v=
recordList |>List.filter(乐趣i->i.a=v)
我怎样才能使
I.a
通行?例如,我可以调用函数并对
I.b
进行筛选

我确信它非常简单(就像f#中的大多数东西一样),但我无法击败类型错误消息

干杯


dusiod

我不太确定您想做什么,但这里有一些选项:

 filter1 (recordList |> List.map (fun t -> t.b)) v
或者将声明更改为

filter1 (recordList: List<myrecord>) (v:'t) (f:myrecord -> 't) = 
    recordList |> List.filter (fun i -> (f i) = v)

更短,节省6个字符;)->recordList |>List.filter(fun{a=a}->a=v)嗨,约翰,谢谢你的回答-第二个代码示例实现了我想要做的。需要阅读通用类型减速!干杯,杜西德。
 filter1 (recordList |> List.map (fun t -> t.b)) v
filter1 (recordList: List<myrecord>) (v:'t) (f:myrecord -> 't) = 
    recordList |> List.filter (fun i -> (f i) = v)
recordList |> List.filter (function |{a=A} -> A=v)