f# - 具有 BigInteger 索引的 F# 序列
问题描述
我正在寻找一种类似于 F# 中的序列的类型,其中索引可能是大整数,而不是仅限于int
. 有没有这样的东西?通过“大整数索引”,我的意思是一种允许与之等效的类型:
let s = Seq.initInfinite (fun i -> i + 10I)
解决方案
以下将生成无限系列的 bigint:
let s = Seq.initInfinite (fun i -> bigint i + 10I)
我怀疑你真正想要的是一个Map<'Key, 'Value>
.
这使您可以有效地使用 bigint 作为索引来查找您关心的任何值:
let map =
seq {
1I, "one"
2I, "two"
3I, "three"
}
|> Map.ofSeq
// val map : Map<System.Numerics.BigInteger,string> =
// map [(1, "one"); (2, "two"); (3, "three")]
map.TryFind 1I |> (printfn "%A") // Some "one"
map.TryFind 4I |> (printfn "%A") // None
推荐阅读
- ios - 使用 Apple 登录 - 使用设备(iPhone 或 iPad)Apple ID 时缺少电子邮件
- c# - 是否可以通过谷歌驱动器/一个驱动器共享数据库并在表单应用程序上使用它?
- google-forms - Google 表单 - 答案类型:网格上的开放式答案,而不是多项选择网格或复选框网格
- vue.js - 从 Monaco Editor 获取值
- python - 通过 emacs 执行 Python 脚本引发 OSError: *.txt not found
- java - spring-boot-maven-plugin 从依赖项中重新打包所有 jar
- android - Android从服务访问数据库存储库?
- mysql - 如何交叉检查MYSQL数据库中的所有表
- javascript - 用反应导航反应原生流媒体停止
- sql - SQL 滚动 LTV(生命周期价值)