Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это сообщение присваивается при передаче лямбда-лямбда-параметра, в котором ожидается значение.
Следующий код демонстрирует ошибку:
let ignoreInt (f: int) = ()
do ignoreInt (fun x -> x + 1)
Этот код приводит к следующим выходным данным:
error FS0002: This function takes too many arguments, or is used in a context where a function is not expected
Здесь тип определяется как функцияint -> unit, но лямбда-тип ignoreIntint -> int передается вместо него. Так как int -> int сообщение не совпадает с int типом сообщения.
Чтобы исправить это сообщение, необходимо изменить код, чтобы нелямбда-аргумент передается функции, как в этом примере:
let ignoreInt (i: int) = ()
do ignoreInt 1