JuliaMath / JuliaMath/MeasureBase.jl
Monadic iteration for measures?
- Dominant language
- Julia
- Stars
- 32
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
By defining
```julia
Base.iterate(m::AbstractMeasure) = rand(m), nothing
Base.iterate(m::AbstractMeasure, ::Nothing) = rand(m), nothing
Base.Iterators.IteratorSize(::Type{<:AbstractMeasure}) = Base.IsInfinite()
```
we could make measures monadic in respect to Julia's iteration interface:
```julia
julia> using Base.Iterators, MeasureTheory
julia> take((x^2 for x in Normal()), 10) |> collect
10-element Vector{Float64}:
[...]
```
This would play well semantically with a syntax `f.(μ)` for pushforward measures (#54).
`x^2 for x in Normal` would become semantically equivalent to `x ~ Normal(); return x^2` in a model.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.