вот в чем проблема. Мне нужно время функции в F #, используя другую функцию. У меня есть этот кусок кода
let time f a =
let start = System.DateTime.Now in
let res = (fun f a -> f(a)) in
let finish = System.DateTime.Now in
(res, finish - start)
который я пытаюсь назвать, говоря
time ackermann (2,9);;
У меня есть функция ackermann, которая принимает в качестве аргумента кортеж (s, n)
Возможно, что-то в корне не так с этим, но я не думаю, что я далек от решения, которое могло бы и выглядит примерно так.
Есть предложения?
О, кстати. полученное сообщение об ошибке гласит:
стандартный ввод (19,1): ошибка FS0030: ограничение значения. Значение 'it' было выведено, чтобы иметь общий тип
val it: (('_a ->' _b) -> '_a ->' _b) * System.TimeSpan
Либо определите «это» как простой термин данных, сделайте его функцией с явными аргументами или, если вы не собираетесь использовать его как универсальный, добавьте аннотацию типа.