Size: a a a

F# Flood: Диванная теория всего

2020 August 01

P

Pavel in F# Flood: Диванная теория всего
тогда уж так
источник

P

Pavel in F# Flood: Диванная теория всего
let myLog =
#if DEBUG
 ignore
#else
 Printf.kprintf
#endif
источник

P

Pavel in F# Flood: Диванная теория всего
или наоборот
источник

Dv

Dr. Friedrich von Ne... in F# Flood: Диванная теория всего
Pavel
или наоборот
Ну да, на самом деле надо наоборот, это я в своём примере ошибся :)
источник

VS

Vladimir Shchur in F# Flood: Диванная теория всего
ещё есть вариант не юзать kprintf :)
источник

AD

Aleksandr Drozdov in F# Flood: Диванная теория всего
Pavel
let myLog =
#if DEBUG
 ignore
#else
 Printf.kprintf
#endif
А так он резолвит типы?
источник

P

Pavel in F# Flood: Диванная теория всего
так же как и тут
let myLog =
 if debug then ignore
 else Printf.kprintf
источник

P

Pavel in F# Flood: Диванная теория всего
ему какая разница?
источник

Dv

Dr. Friedrich von Ne... in F# Flood: Диванная теория всего
Pavel
так же как и тут
let myLog =
 if debug then ignore
 else Printf.kprintf
Ну, тут не работает ничо
источник

NM

Nikolay M in F# Flood: Диванная теория всего
Nikolay M
интрестинг
Хтя не где-то отвалвиается
источник

P

Pavel in F# Flood: Диванная теория всего
блин.. ща студию заведу
источник

AD

Aleksandr Drozdov in F# Flood: Диванная теория всего
Pavel
ему какая разница?
TextWriterFormat<_> это же необычный тип
источник

AD

Aleksandr Drozdov in F# Flood: Диванная теория всего
Он выводится по особому
источник

Dv

Dr. Friedrich von Ne... in F# Flood: Диванная теория всего
Играюсь вот с этим сэмплом, но пока не понял, как заинлайнить логгер внутрь logPrintf
источник

Dv

Dr. Friedrich von Ne... in F# Flood: Диванная теория всего
О, вроде вышло, щас покажу.
источник

P

Pavel in F# Flood: Диванная теория всего
let myLog (x : '_a when '_a :> Printf.StringFormat<'_b,unit>)  =
#if ! DEBUG
 Printf.kprintf (printfn "%s") x
#else
 Unchecked.defaultof<_>
#endif
источник

P

Pavel in F# Flood: Диванная теория всего
myLog  "%s sss %i" "aa" 11
не чет не так
источник

Dv

Dr. Friedrich von Ne... in F# Flood: Диванная теория всего
open System

let mutable debug = true

let debugLog (format: Printf.StringFormat<'a, unit>): 'a =
       Printf.kprintf (
           fun s -> if debug then printfn "%A: %s" DateTime.Now s
       ) format

[<EntryPoint>]
let main _ =
   debugLog "This: %s" "foo"
   debugLog "That: %d - %d = %d" 2 2 4
   debug <- false
   debugLog "Invisible! %s" "haha"
   debug <- true
   debugLog "Visible"
   0
источник

NM

Nikolay M in F# Flood: Диванная теория всего
Dr. Friedrich von Never
open System

let mutable debug = true

let debugLog (format: Printf.StringFormat<'a, unit>): 'a =
       Printf.kprintf (
           fun s -> if debug then printfn "%A: %s" DateTime.Now s
       ) format

[<EntryPoint>]
let main _ =
   debugLog "This: %s" "foo"
   debugLog "That: %d - %d = %d" 2 2 4
   debug <- false
   debugLog "Invisible! %s" "haha"
   debug <- true
   debugLog "Visible"
   0
Ну это боян
источник

NM

Nikolay M in F# Flood: Диванная теория всего
Строка то все равно аллоцируется
источник