functional-programming - 如何在 OCaml 中查找数组元素的索引

标签 functional-programming ocaml ocaml-batteries

我正在尝试在 ocaml 中找到整数数组元素的索引。如何递归地做到这一点。
示例代码:let a = [|2; 3; 10|];;假设我想返回数组 a 中 3 的索引。任何帮助表示赞赏。我是 OCaml 编程的新手

最佳答案

type opt = Some of int | None;;

let find a i =
  let rec find a i n =
    if a.(n)=i then Some n
    else find a i (n+1)
  in
  try 
    find a i 0
   with _ -> None
;;

测试
# find a 3;;
- : int option = Some 1
# find [||] 3;;
- : int option = None
# find a 12;;
- : int option = None

关于functional-programming - 如何在 OCaml 中查找数组元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33974556/

相关文章:

ocaml - 如何强制 OCaml 推断出更通用的类型?

queue - OCaml - 如何创建队列

ocaml - 编译 ocaml-websocket 失败

javascript - Ramda 基于键匹配的递归合并

haskell - 用 Haskell 编写 Haskell 解释器

compiler-errors - F# 4.5.0.0 : Compilation errors: FS1198, FS0661 和 FS0001:我正在调整从 C# 到 F# 的接口(interface)

functional-programming - F# 查询表达式与 native SQL 具有相同的性能吗?

OCaml 类似于 Python 的 String join 方法