photog.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A place for your photos and banter. Photog first is our motto Please refer to the site rules before posting.

Administered by:

Server stats:

266
active users

#functionalprogramming

3 posts3 participants0 posts today

Just published a longform article on parallel collectors in Java Streams.

✅ Covers correctness, performance, pitfalls
🛠 Custom collectors with CONCURRENT semantics
🔬 JMH benchmark

TL;DR: .parallelStream() is not a magic wand.

svenruppert.com/2025/04/08/syn

Sven Ruppert · Synchronous in Chaos: How Parallel Collectors Bring Order to Java Streams
More from Sven Ruppert

Category theory using Haskell (An introduction with Moggi and Yoneda). ~ Shuichi Yukita. books.google.com/books?id=4Xc2 #CategoryTheory #Math #Haskell #FunctionalProgramming

Google BooksCategory Theory Using HaskellThis unique book offers an introductory course on category theory, which became a working language in algebraic geometry and number theory in the 1950s and began to spread to logic and computer science soon after it was created. Offering excellent use of helpful examples in Haskell, the work covers (among other things) concepts of functors, natural transformations, monads, adjoints, universality, category equivalence, and many others. The main goal is to understand the Yoneda lemma, which can be used to reverse-engineer the implementation of a function. Later chapters offer more insights into computer science, including computation with output, nondeterministic computation, and continuation passing. Topics and features: Contains rigorous mathematical arguments to support the theory Provides numerous Haskell code-implementing examples Engages with plentiful diagram chasing, with special emphasis on the design patterns for constructing a large diagram out of basic small pieces Offers insights into category theory to quantum computing and the foundation of computing discipline Serves as a preparatory course for monoidal categories and higher categories The work will be useful to undergraduate students in computer science who have enough background in college mathematics such as linear algebra and basics in Haskell polymorphic functions. Further, it will appeal to graduate students and researchers in computing disciplines who want to newly acquire serious knowledge of category theory.

Java Is Becoming a Monster (And I Love It)
I used to think Java was done. Stale. Verbose. A relic.
But now? It mutated. It spawns 5000 virtual threads like it’s nothing.

I just built a REST service:
✅ Runs on virtual threads
✅ Functional pipelines
✅ Only a few MB RAM
✅ No thread-pools
✅ No leaks
✅ Pure JVM

This isn't Java 8 anymore.

✨ No Groovy. No Kotlin. No detours.
Java is now useful and gets Beautiful.

And then there’s GraalVM:
If you skip reflection and runtime init, you get:
⚡ Native executables
⚡ Instant startup
⚡ Tiny memory
⚡ No runtime surprises

Game. Changed.

But OSS frameworks?
Still look frozen in 2015.
Heavy, reflective, runtime-hacked monsters.

So I built my own tools:

🔥 TypeMap
→ Zero-reflection json/xlm reader & type converter
→ GraalVM native
→ Fast. Simple. Functional.
github.com/YunaBraska/type-map

⚔️ Nano
→ Anti-framework
→ Static main, no DI magic
→ Pure, clean design
github.com/NanoNative/nano

🧪 Nano example app
➡️ One single static main file
github.com/YunaBraska/nano-gra

🛠 API-Doc-Crafter
➡️ Native CLI doc tool
github.com/YunaBraska/api-doc-

🧭 My Java Functional Guidelines
devabyss.hashnode.dev/java-fun

Java isn't just catching up.
It’s setting the pace now.

The only question is:
Can frameworks and libraries keep up?

Interesting.

"In the 1990s, it was [...] thought that parallel graph-reduction architectures could make functional programming languages much faster than their imperative counterparts. Alas, that prediction mostly failed to materialize. [...] Now, two projects — Bend and Vine — have sprung up attempting to change that, and prove that parallel graph reduction can be a useful technique for real programs."

lwn.net/Articles/1011803/

lwn.netTwo new graph-based functional programming languages [LWN.net]

I am once again faced with the bleak irony of people who like to code in the terminal with Vim or Nano, but also install onto their computer some 5 or 10 apps via FlatPak or Docker, including VSCode, each installed with their own entire copies of Node.js and Electron.js (differing only in their minor revision number), while also complaining about Emacs being “bloated” because it ships with a miniature web browser and fully-featured e-mail client.

#tech#software#Emacs
Replied to HoldMyType

@xameer the “R7RS small” Scheme standard has a full numerical tower built-in, including unbounded integers.

(- (+ (expt 10 100) 1) (expt 10 100))

gives you precisely the correct answer without any floating-point operations. Although macros for symbolic computation with optimization that would avoid computation of (expr 10 100) is “an exercise left to the reader.” Haskell might do the optimal computation though thanks to it’s lazy evaluation.

Why dont we define uncertainty as a function of time ?
Isnt a function also a variable ?
Aha
> In functional programs the variables are like those in mathematics, once a value has been assigned the value cannot change.

In imperative languages it is typical that the values held by variables an be changed.

/Higher-order
/Random
#functionalprogramming