我有一个函数,在给定字符串时返回一个列表:
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
我不知道我在哪里滑了,我对功能编程很新,感谢任何帮助,谢谢。
答案 0 :(得分:1)
get_nth
期望一个元组而不是两个单独的参数,因此应该像
get_nth ([1;2;3;4], 2)
或
print_string (get_nth ((input_to_set_strings input), n))
在你的情况下。