Hacker News with Generative AI: Functional Programming

Show HN: Pyper – Concurrent Python Made Simple (github.com/pyper-dev)
Pyper is a flexible framework for concurrent and parallel data-processing, based on functional programming patterns. Used for 🔀 ETL Systems, ⚙️ Data Microservices, and 🌐 Data Collection
Gleam v1.7 (gleam.run)
Gleam is a type-safe and scalable language for the Erlang virtual machine and JavaScript runtimes. Today Gleam v1.7.0 has been published, featuring an array of wonderful improvements. Let’s take a look!
Fold-... and Monoids (blogspot.com)
Gleam v1.7 (gleam.run)
Gleam is a type-safe and scalable language for the Erlang virtual machine and JavaScript runtimes. Today Gleam v1.7.0 has been published, featuring an array of wonderful improvements. Let’s take a look!
K/Simple in OCaml (uwaterloo.ca)
Rohlang3: A point-free, homoiconic, and dependently typed "SK calculus" (rohan.ga)
I’ve long been obsessed with minimalistic languages that still manage to have expressive power. My usual approach: start with a bare-bones combinator calculus (like SK), then keep adding “one more extension” until it looks suspiciously like a full-blown typed language. rohlang3 is exactly that experiment. It’s a small language built in Rust that tries to be point-free, homoiconic, and (somewhat) dependently typed, all on top of an SK-like foundation—plus reflection, partial evaluation, and a weird environment reordering system.
Overloading the lambda abstraction in Haskell (2022) (acatalepsie.fr)
Into CPS, Never to Return (bernsteinbear.com)
CPS, or continuation-passing style, is an intermediate representation for programs, particularly functional programs. It’s used in compilers for languages such as SML and Scheme.
F*: A proof oriented general purpose programming language (fstar-lang.org)
F* (pronounced F star) is a general-purpose proof-oriented programming language, supporting both purely functional and effectful programming.
Better Scala Builds with the Mill Build Tool, Functional Scala Online 2024 [video] (youtube.com)
How types make hard problems easy (mayhul.com)
Over the last couple years, my programming brain has become increasingly warped around types, functional programming principles & Typescript.
Relational Lisp – AP5 (ap5.com)
AP5 is an extension to commonlisp which allows users to "program" at a more "specificational" level.
Fault Report – and alternative to Result in F# (blasuc.ci)
This blog post is late. Not just days or weeks late. And not just because I promised Vlad and Jimmy I'd write up something back in early 2023 (sorry, gents). No, it's very much later: the approach described herein should have been presented to the FSharp.Core maintainers way back in 2016. After all, that's where this all began.
Array Languages for Clojurians (2020) (appliedscience.studio)
A discussion in the Clojure data science Zulip led me to Slobodan Blazeski’s enlightening article Array languages for Lisp programmers in the journal of the British APL Association. He quotes Alan Perlis:
John Carmack on Functional Programming in C++ (sevangelatos.com)
Probably everyone reading this has heard “functional programming” put forth as something that is supposed to bring benefits to software development, or even heard it touted as a silver bullet.
Ad-Hoc Effects in Rust (hannobraun.com)
Let's talk about Rust today, because it has ad-hoc effects, no principled effect system, and has real problems because of that.
The humble for loop in Rust (startifact.com)
Rust has some really nice functional programming facilities built in, all around an iterator concept.
Show HN: Lfi – a lazy functional sync, async, and concurrent iteration library (lfi.dev)
lfi is a lazy functional sync, async, and concurrent iteration library
Functional Core, Imperative Shell – Scott Wlaschin (youtube.com)
A Novel Idea About `Functor` in Rust? (wolfgirl.dev)
So. In my last post about this compiler project, I wrote out the following trait definition, explaining that it’s what I was using to do type-safe AST transformations:
Dependent Types and the Art of HTTP Headers (unwoundstack.com)
Making illegal state unrepresentable in Idris
You Have Built an Erlang (vereis.com)
Cursed Linear Types in Rust (geo-ant.github.io)
Inspired by Jack Wrenn’s post on Undroppable Types in Rust, I set out to see if it’s possible to create types that must be used exactly once.
Functional Programming Self-Affirmations (norikitech.com)
Dmitrii Kovanikov writes posts about enterprise software development and functional programming, both entertaining and serious. I never used a functional programming language (such as Haskell or OCaml) at work, but several ideas from functional programming have become popular in mainstream general-purpose programming languages such as Swift (which I mostly write). Often even a partially functional approach produces simpler code that’s easy to understand and quick to write and maintain.
Clojure Don'ts: Concat (stuartsierra.com)
concat is a tricky little function. The name suggests a way to combine two collections. And it is, if you have only two collections. But it’s not as general as you might think. It’s not really a collection function at all. It’s a lazy sequence function. The difference can be important.
Futures and Multiple Values in Parallel Lisp (1991) [pdf] (3e8.org)
Everything Is Just Functions: 1 week with David Beazley and SICP (notion.site)
Making Sense of Lambda Calculus 0: Abstration, Reduction, Substitution? (aartaka.me)
I am a programmer. A Lisp programmer, in fact. I have a creeping desire to understand Lambda Calculus because it's a powerful and elegant tool and an inspiring idea underlying many functional languages and idioms. I use lambdas every day, without knowing their secret power. Might be useful to unleash this power and tame it for productivity.
Functional Programming in Go (bitfieldconsulting.com)
Question: what the heck is functional programming, anyway? Don’t all programs use functions?
Functors to Monads: A Story of Shapes (jle.im)
For many years now I’ve been using a mental model and intuition that has guided me well for understanding and teaching and using functors, applicatives, monads, and other related Haskell abstractions, as well as for approaching learning new ones.