在ML我有一系列字符!我试图找到一个数组函数,以给函数char#“T”并返回我在数组中的元素的位置。我尝试了find函数,它不能像那样工作!
答案 0 :(得分:0)
findi
结构的 Array
将执行您想要的操作。对于'a array
类型的数组,findi
需要(int * 'a) -> bool
和'a array
并返回(int * 'a) option
。因此,如果你想获取一个角色并只返回角色的位置,你只需要找出传递给findi
的适当参数以及解释结果的适当方法。
例如:
- fun findPos char = (Option.map (fn (i,_) => i)) o (Array.findi (fn (_,c) => c = char));
stdIn:2.65 Warning: calling polyEqual
val findPos = fn : ''a -> ''a array -> int option
- findPos #"c" (Array.fromList (explode "abcdef"));
val it = SOME 2 : int option
- findPos #"z" (Array.fromList (explode "abcdef"));
val it = NONE : int option