Skip to content

tommililja/Free

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A free monad example in F#

module CatFacts =

    let private fromJson = JsonSerializer.deserialize<CatFacts>

    let getAsync url = effectAsync {

        let! time = EffectAsync.getTime ()

        do! EffectAsync.log $"Request to {url} at {time}."

        let! facts =
            url
            |> EffectAsync.getJson
            |> EffectAsync.map fromJson

        do! EffectAsync.log $"Retrieved {facts.Length} cat facts."

        return facts
    }

About

Free monad example in F#

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages