let newFormat = translate format
let loggerLevel = Config.loggerValue "Level" "None"
match loggerLevel with
| Debug -> logger.Debug(newFormat.ToString())
| _ -> ()
debug "address %s, port %d" addr port // здесь ругается This value is not a function and cannot be applied.
почему при вызове функции debug пишет такую ошибку?
Что есть logger?
Ну так ты объявляешь функцию с одним аргументом, возвращаешь юнит, а вызываешь с тремя аргументами.
в фшарп кор всё так же! https://github.com/dotnet/fsharp/blob/6034e99b1e939c46963650d22ded174bc85de112/src/fsharp/FSharp.Core/printf.fsi#L182
ну если обернуть все в скобки, тоже не помогает. debug объявлен по аналогии с printf
в оригинале возвращается T, а ты юнит
debug возвращает unit
Разве такие вещи не через Printf.kprintf делаются?
в чате давно уже были *практически* не аллоцирующие принтф через компиляторные хаки
Обсуждают сегодня