Хороший подход. Я пометил Томаса как правильный ответ, но мне нравится этот подход, который я, вероятно, буду использовать
аюсь создать структуру, чтобы сделать некоторую обработку файлов и данных. Единственная область, с которой я борюсь, - это как обеспечить каркасную функцию протоколирования, позволяющую каркасу сообщать о сообщениях без каких-либо знаний об использовании логирования.
let testLogger (source:seq<'a>) logger =
logger "Testing..."
let length = source |> Seq.length
logger "Got a length of %d" length
let logger format = Printf.kprintf (printfn "%A: %s" System.DateTime.Now) format
testLogger [1; 2; 3] logger
В идеале я хочу, чтобы этот код работал, но я не могу понять, как передать функцию регистрации.