我有一个函数,它在给定字符串时返回一个列表:
let input_string_to_list input =
Str.split (Str.regexp "\n") input
我还有一个函数应该返回列表的第 n 个元素:
let rec get_nth = function
| h::_, 0 -> h
| h::t, n -> get_nth(t, n - 1)
;;
然后我尝试打印列表的第 n 个元素(应该是一个字符串):
print_string (get_nth (input_to_set_strings input) n)
但是我在编译时收到此错误:
Error: This expression has type string list but an expression was expected of type ('a -> 'b) list * int
我不明白我在哪里滑倒了,我对函数式编程还很陌生,感谢任何帮助,谢谢。
get_nth
期望一个元组而不是两个单独的参数,所以它应该被称为
get_nth ([1;2;3;4], 2)
或者
print_string (get_nth ((input_to_set_strings input), n))
在你的情况下。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句