заменить это
let checkCreation time: DateTime =
с этим
let checkCreation (time: DateTime) =
Первый имеет подпись (DateTime -> DateTime)
, потому что вы явно наложили это ограничение на вывод функции. Входные данные были выведены компилятором.
Второй подпись (DateTime -> unit)
. Ввод был явно ограничен, а вывод unit
выведен
Добавлено:
Полная явная подпись должна выглядеть следующим образом
let checkCreation (time: DateTime) : unit =
...
Вы можете удалить все явные ограничения типов и заставить компилятор работать:
//because time argument compared to DateTime it is inferred to be DateTime
//No explicit constrain needed
let checkCreation time = //DateTime -> unit
//because if expression is the last one, its output will be used as function output
if (time > DateTime.UtcNow.AddDays(-7.0))
//because then branch has unit output, function output will be inferred as unit
then printfn "New"
//else branch output MUST match with then branch. Your code pass :)
else printfn "Old"