Functional Programming India's Avatar

Functional Programming India

@fpindia.bsky.social

Uniting Functional Programming Language enthusiasts across India. Discussions: https://t.me/fpncr Web: https://functionalprogramming.in/

15 Followers  |  67 Following  |  13 Posts  |  Joined: 27.08.2025  |  2.0045

Latest posts by fpindia.bsky.social on Bluesky

Arrows to arrows, categories to queries. ~ Sandy Maguire. reasonablypolymorphic.com/blog/arrows-... #Haskell #FunctionalProgramming

15.10.2025 18:05 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
[ICFP/SPLASH'25] Orchid Plenary Ballroom - ICFP Papers and Events (Oct 13th)
YouTube video by ACM SIGPLAN [ICFP/SPLASH'25] Orchid Plenary Ballroom - ICFP Papers and Events (Oct 13th)

The video recording of my ICFP 2025 keynote talk Functional Programming for Hardware Design is up on YouTube. www.youtube.com/watch?v=1oBO...

15.10.2025 07:56 β€” πŸ‘ 22    πŸ” 5    πŸ’¬ 1    πŸ“Œ 1
Post image Post image

Completely full house for our OxCaml tutorial at #icfpsplash25! conf.researchr.org/details/icfp...

12.10.2025 06:53 β€” πŸ‘ 21    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
You may not like it, but React is basically Haskell. 

The React Compiler works for the same exact reason that compilers for pure programming languages are able to make non-trivial optimizations.

If your code is composed of pure functions, it is safe to re-order their computation, or save the result for some inputs and reuse it for later for same inputs.  This is not some kind of a β€œworkaround” or a hack β€” it’s one of the most exciting consequences of the functional programming paradigm which has been known and used for decades.

Purity and idempotency make it safe to move stuff around without changing the final outcome. Following the "rules of React" is just ensuring your code is safe to move around like this.

You may not like it, but React is basically Haskell. The React Compiler works for the same exact reason that compilers for pure programming languages are able to make non-trivial optimizations. If your code is composed of pure functions, it is safe to re-order their computation, or save the result for some inputs and reuse it for later for same inputs. This is not some kind of a β€œworkaround” or a hack β€” it’s one of the most exciting consequences of the functional programming paradigm which has been known and used for decades. Purity and idempotency make it safe to move stuff around without changing the final outcome. Following the "rules of React" is just ensuring your code is safe to move around like this.

i think the @react.dev Compiler team could include more of this type of messaging. i'm being a bit inflammatory here (and Haskell may not the best analogy), but the principle of "pure things are safe to move around" is fundamentally simple and has been known for decades. teach it to new generation!

11.10.2025 12:14 β€” πŸ‘ 232    πŸ” 22    πŸ’¬ 10    πŸ“Œ 6
Puzzle: nicht zusammen gesetzt sondern aus den Puzzle Teilen einen Hund geformt.

Puzzle: nicht zusammen gesetzt sondern aus den Puzzle Teilen einen Hund geformt.

πŸ‘€πŸ˜‡πŸ˜‰ fertig

11.10.2025 16:23 β€” πŸ‘ 56    πŸ” 10    πŸ’¬ 2    πŸ“Œ 0
Cowboys from Haskell
YouTube video by r. guitars Cowboys from Haskell

The mad lads have made it: Two Haskellers went to the town of #Haskell, TX. They documented their journey here: www.youtube.com/watch?v=9KwW...

See on Reddit: www.reddit.com/r/haskell/co...

08.10.2025 22:00 β€” πŸ‘ 12    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
Hazel programming language with a parsed csv and table of pokemon

Hazel programming language with a parsed csv and table of pokemon

I can finally do some real work.

07.10.2025 13:53 β€” πŸ‘ 24    πŸ” 4    πŸ’¬ 1    πŸ“Œ 0

I wonder, what were the sales numbers like for the earlier iteration of the Haskell IDE? Seems like a very niche market

30.09.2025 11:50 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Screenshot of Applicative Code with a Haskell file open and a documentation popup for (++).

Screenshot of Applicative Code with a Haskell file open and a documentation popup for (++).

Are you interested in a new Haskell IDE for macOS? I’m looking for beta testers! Send me a DM with your email for a TestFlight invitation.

30.06.2025 13:40 β€” πŸ‘ 10    πŸ” 4    πŸ’¬ 1    πŸ“Œ 1

Yes. I would also consider every generic value a function that takes a type argument. For example
nothing :: forall a. Maybe a

29.09.2025 11:29 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Proposed goals - Rust Project Goals

This is such an incredibly cool page for #rustlang to have

rust-lang.github.io/rust-project...

One day we will have this but for #julialang ✊

22.09.2025 16:09 β€” πŸ‘ 16    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0
Post image

Uhh

21.09.2025 12:34 β€” πŸ‘ 2    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Post image

Uhh

21.09.2025 12:34 β€” πŸ‘ 2    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Preview
ARM infrastructure fundraiser update Hello Haskell community! As many of you know, the Haskell Foundation ran a fundraiser during the month of July, Infrastructure Independence!. I’m happy to provide an update on how those funds have be...

ARM infrastructure fundraiser update!

discourse.haskell.org/t/arm-infras...

#Haskell

19.09.2025 20:15 β€” πŸ‘ 14    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
How I Use Haskell for 3D Printing

Over the weekend I gave a talk on using #Haskell for 3d Printing at MuniHac

No recording, but the slides are up here:
doscienceto.it/cad-talk/

16.09.2025 07:57 β€” πŸ‘ 5    πŸ” 3    πŸ’¬ 0    πŸ“Œ 0
Post image Post image

"We sat down with Phil Wadler, one of the most influential folks in the Haskell community, functional programming, and programming languages, responsible for type classes, monads, and much more. We take a stroll down memory lane, starting from Haskell’s inception."

haskell.foundation/podcast/70/

16.09.2025 21:24 β€” πŸ‘ 14    πŸ” 7    πŸ’¬ 0    πŸ“Œ 0
Various 3D-printed dice of different sizes, pink or black, with a Haskell logo on them. Articulated keyrings are displayed as well

Various 3D-printed dice of different sizes, pink or black, with a Haskell logo on them. Articulated keyrings are displayed as well

3D printing at #MuniHac!

#Haskell

14.09.2025 09:11 β€” πŸ‘ 36    πŸ” 4    πŸ’¬ 2    πŸ“Œ 1
"Haskell" written on a whiteboard with the S drawn as The Cool S

"Haskell" written on a whiteboard with the S drawn as The Cool S

All the cool kids are doing Haskell these days!

12.09.2025 14:50 β€” πŸ‘ 32    πŸ” 1    πŸ’¬ 3    πŸ“Œ 0

Which is your favorite functional programming language and why? How many have you tried?

10.09.2025 17:56 β€” πŸ‘ 56    πŸ” 5    πŸ’¬ 61    πŸ“Œ 5

That's how you know #Haskell is getting mainstream, the scams are getting at us

11.09.2025 11:49 β€” πŸ‘ 5    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
Preview
Bangalore FP October 2025 meetup Bangalore FP October 2025 meetup

Announcing the October #FPIndia #Bangalore #Meetup!

#Haskell #PureScript #Elixir #Erlang #Scala #Clojure #India #FunctionalProgramming

RSVP: hasgeek.com/fpindia/bang...

10.09.2025 09:54 β€” πŸ‘ 4    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

An intuitive way of seeing this that also generalizes to arbitrary categories not just Set/Types is -

Currying means that for any arbitrary object A, functions of the form -
(A,()) -> X
are the same as functions of the form -
A -> (() -> X)

1/2

07.09.2025 17:04 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Oh and X->() is actually isomorphic to (). Because by the definition of the terminal object, there can only be one unique (X->()) for any X, which makes it isomorphic to () (another set with only one member)

07.09.2025 17:08 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

But also, we know that (A,()) is the same as A, because () is the identity for products.

Combining we can see that functions of the form -
A->X are the same as A->(()->X)

This means (by yoneda lemma) that X is the same as ()->X

QED

2/2

07.09.2025 17:04 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

An intuitive way of seeing this that also generalizes to arbitrary categories not just Set/Types is -

Currying means that for any arbitrary object A, functions of the form -
(A,()) -> X
are the same as functions of the form -
A -> (() -> X)

1/2

07.09.2025 17:04 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Important clarification from the post: This is a remote position available internationally

07.09.2025 05:50 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Public view of Lean | Zulip team chat Browse the publicly accessible channels in Lean without logging in.

The Lean project is looking for someone to work on a documentation tool for math/technical communication. This is likely to be very influential, so a chance for someone with the right skills to have great impact. See the announcement here:
leanprover.zulipchat.com#narrow/chann...

06.09.2025 14:28 β€” πŸ‘ 38    πŸ” 13    πŸ’¬ 1    πŸ“Œ 1

Come learn Category theory at this meetup!

04.09.2025 10:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Excited about Global Elixir Meetups! πŸŽ‰

A week of Elixir meetups all over the world. 🌍

Good opportunity to connect with your local Elixir community while being part of something global.

#ElixirLang

02.09.2025 14:39 β€” πŸ‘ 11    πŸ” 5    πŸ’¬ 1    πŸ“Œ 1

the funny thing about my Lean posting is i remember some people were like Haskell posting or PureScript posting or whatever in 2013 and i was like ahhh i don't have patience to learn a pure functional thing, what's the point. and here i am

02.09.2025 21:01 β€” πŸ‘ 61    πŸ” 1    πŸ’¬ 3    πŸ“Œ 0

@fpindia is following 20 prominent accounts