Skip to content

Instantly share code, notes, and snippets.

@mikeananev
Created July 24, 2022 17:00
Show Gist options
  • Save mikeananev/c211025f98eae9628f5e86c5c20ef3af to your computer and use it in GitHub Desktop.
Save mikeananev/c211025f98eae9628f5e86c5c20ef3af to your computer and use it in GitHub Desktop.
Example of gen/fmap, gen/bind, gen/let
(def object-gen #(gen/fmap (fn [_] (Object.)) (gen/return 1)))
(s/def ::object (s/with-gen any? object-gen))
(gen/sample (gen/bind (gen/return 3) (fn [x] (gen/return (+ x 4)))))
(gen/sample (gen/let [strs (gen/not-empty (gen/list gen/string))
s (gen/elements strs)]
{:some-strings strs :one-of-those-strings s}))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment