比较f#中两个单独列表中的项目

0 f# compare list

这是我正在研究的例子:

    let test =
  [("Andy", ["d"; "a"; "d"; "c"; "b"; "d"; "c"; "a"; "a"; "c"; "a"; "d"; "a"; "a"; "d"; "e"]);
   ("Harry", ["b"; "d"; "c"; "b"; "c"; "b"; "a"; "a"; "d"; "b"; "d"; "d"; "a"; "c"; "b"; "e"]);

let answers = ["b"; "a"; "a"; "c"; "d"; "d"; "c"; "a"; "a"; "d"; "a"; "d"; "a"; "a"; "d"; "e"]);
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用list.map来比较每个人的测试,并确定他们得到了多少答案.任何帮助,将不胜感激.

Lee*_*Lee 5

我会创建一个函数来计算答案列表和正确答案的分数,然后将其应用于列表中的每个元组:

let getScore ans correct = List.map2 (=) ans correct |> List.filter id |> List.length
let getCorrect l = l |> List.map (fun (name, ans) -> (name, getScore ans answers))
Run Code Online (Sandbox Code Playgroud)