gpt4 book ai didi

f# - 如何在 F# 中对 LIST 进行排序

转载 作者:行者123 更新时间:2023-12-03 04:40:52 25 4
gpt4 key购买 nike

总共 F# n00b 问题。如何对 LIST 数据结构进行排序?

编辑:抱歉,我的数据结构实际上是一个列表。

也许我应该添加我的代码,因为仅使用“.sort”不起作用:

let getDataFromDb (db: MyDB) Id =
Query.query <@ seq {
big honking database/FLinq query
yield (sec, pm, sr, trade, tradeRec, i, pm_firm, files, lt)
} @> |> List.ofSeq

当我将最后一行代码更改为:
} @> |> List.ofSeq.sortBy fst
我得到以下信息:

Error 1 The field, constructor or member 'sortBy' is not defined

唉,好痛苦啊。我现在正在尝试:

|> List.ofSeq |> List.sortBy

但是我得到了这个:

Error 1 Type mismatch. Expecting a (Security * RoleContributor * RoleContributor * SuggestedTrade * SuggestedTradeRecommendation * Idea * RoleContributor * SupportingUploadedFile * LargeText) list -> 'a but given a ('b -> 'c) -> 'b list -> 'b list The type '(Security * RoleContributor * RoleContributor * SuggestedTrade * SuggestedTradeRecommendation * Idea * RoleContributor * SupportingUploadedFile * LargeText) list' does not match the type ''a -> 'b'

最佳答案

Seq.sortBy会这样做。

但是,排序意味着您在排序时知道完整序列的键值,因此根据定义,您不能在无限序列上使用它。

编辑:列表的等效项具有相同的名称: List.sortBy

MSDN 示例:

let sortedList2 = List.sortBy (fun elem -> abs elem) [1; 4; 8; -2; 5]
printfn "%A" sortedList2

编辑2:

从您的新示例来看,您似乎有一个元组列表。现在这取决于您要搜索元组中的哪个项目。

关于f# - 如何在 F# 中对 LIST 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4317807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com