dorotaC<p>Ever wanted to use <a href="https://fosstodon.org/tags/Rust" class="mention hashtag" rel="tag">#<span>Rust</span></a> to manipulate images like iterators?</p><p>image<br /> .map(to_rgb)<br /> .filter(|r, g, b| b > 100)<br /> .collect();</p><p>Well, I don't quite have that, but I do have a <a href="https://fosstodon.org/tags/monadic" class="mention hashtag" rel="tag">#<span>monadic</span></a>-ish library called <a href="https://fosstodon.org/tags/obraztam" class="mention hashtag" rel="tag">#<span>obraztam</span></a>.</p><p><a href="https://framagit.org/dcz/obraztam" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">framagit.org/dcz/obraztam</span><span class="invisible"></span></a></p><p>It's <a href="https://fosstodon.org/tags/immutable" class="mention hashtag" rel="tag">#<span>immutable</span></a>-first, it has .map() and .zip() and it optimizes to <a href="https://fosstodon.org/tags/SIMD" class="mention hashtag" rel="tag">#<span>SIMD</span></a> instructions. Can be easily parallelized even more.</p><p>I used it to detect <a href="https://fosstodon.org/tags/laser" class="mention hashtag" rel="tag">#<span>laser</span></a> beams in the picture!</p><p><a href="https://fosstodon.org/tags/graphics" class="mention hashtag" rel="tag">#<span>graphics</span></a> <a href="https://fosstodon.org/tags/monad" class="mention hashtag" rel="tag">#<span>monad</span></a> <a href="https://fosstodon.org/tags/iterator" class="mention hashtag" rel="tag">#<span>iterator</span></a></p>