小编Kyl*_*yle的帖子

在列表中查找项目并返回其索引-OCaml

我编写了以下函数,以在给定列表“ lst”中找到给定项“ x”,并在找到后返回其索引,否则将返回错误:

exception Failure of string

let rec func x lst c = match lst with
    | [] -> raise(Failure "Not Found")
    | hd::tl -> if (hd=x) then c else func x tl (c+1)


let find x lst = func x lst 0
Run Code Online (Sandbox Code Playgroud)

该功能可以正常使用,我只是想知道它的内存消耗是多少?这意味着内存消耗是否取决于列表的长度?还是O(1)?

如果不是O(1),有人可以让我知道该怎么做吗?

谢谢

ocaml list ml find memory-consumption

5
推荐指数
1
解决办法
6865
查看次数

如何避免不停止功能?

我试图在Python(或伪代码)中找到一个编写高级函数的算法 - 不必停止 - 对于给定的函数列表[f1,...,fn]和给定的函数输入列表[x1,...,xn]仅打印一次fi(xj)(表示所有功能和输入对).

当然,实现这一点的天真建议是:

for f in lst1:
   for x in lst2:
      f(x)
Run Code Online (Sandbox Code Playgroud)

但问题是,某些功能可能会在某些输入上永远循环.

我被允许使用一个步进器(它有一个step()方法,每次调用该函数的一个后续计算步骤)

我只需要一个关于如何做的想法或算法.

python halting-problem

1
推荐指数
1
解决办法
144
查看次数

标签 统计

find ×1

halting-problem ×1

list ×1

memory-consumption ×1

ml ×1

ocaml ×1

python ×1