我需要一个吸收字符串和char的函数,它会滑动字符串,如果找到char return return true否则否false。
这是我的起点:
let rec check s a = match s with
"" -> false
| x::xs -> if x = a then true else check xs a ;;
我无法使用CAML Light的库功能(例如Index_char)
感谢您的帮助!
我将留下有关它如何工作的解释,这是我的解决方案:
strobel@suse131:~> rlwrap camllight
> Caml Light version 0.75
let findchar c s =
let len = string_length s in
let rec f1 i s =
if i = len then false
else if s.[i]=c then true else f1 (succ i) s in
f1 0 s
;;
findchar : char -> string -> bool = <fun>
#let s = "this is the searched string";;
s : string = "this is the searched string"
#findchar `a` s;;
- : bool = true
#findchar `y` s;;
- : bool = false
其他练习:
- 我们可以在F1定义中忽略参数S吗?
- 我们如何称呼F1主体中
len
的使用/出现?