gpt4 book ai didi

f# - 如何确定已区分的联合类型列表是否属于相同情况?

转载 作者:行者123 更新时间:2023-12-03 09:52:42 27 4
gpt4 key购买 nike

假设我有这样的 DU:

type DU = Number of int | Word of string

假设我创建了一个列表:
[Number(1); Word("abc"); Number(2)]

我如何编写一个函数,该函数将为所有元素都相同的 DU 列表返回 true。对于上面的列表,它应该返回 false。

最佳答案

我最近有完全相同的用例,解决方案可以比复杂的反射或显式模式匹配简单得多,GetType 做了所有的魔法:

let AreAllElementsOfTheSameType seq = // seq<'a> -> bool
if Seq.isEmpty seq then true else
let t = (Seq.head seq).GetType ()
seq |> Seq.forall (fun e -> (e.GetType ()) = t)

关于f# - 如何确定已区分的联合类型列表是否属于相同情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39430546/

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