Home New Trending Search
About Privacy Terms
#
#FunctionalProgramming
Posts tagged #FunctionalProgramming on Bluesky
Original post on mastodon.social

This sounds like a really interesting PhD course at Chalmers: “Functional Programming and Climate Impact Research”, by Patrik Jansson:

https://github.com/DSLsofMath/FPClimate

After completion of the course the student should be able to:
Use functional programming specification / implementation […]

0 0 0 0
Preview
Readings shared March 9, 2026 The readings shared in Bluesky on 9 March 2026 are: Fantastic simprocs and how to write them. ~ Yaël Dillies, Paul Lezeau. #LeanProver #ITP Formalization in Lean of faithfully flat descent of project

Readings shared March 09, 2026. jaalonso.github.io/vestigium/po... #AI #AI4Math #CategoryTheory #CoqProver #Emacs #FunctionalProgramming #Haskell #ITP #IsabelleHOL #LambdaCalculus #LeanProver #Lisp #Math #Physics #RocqProver

2 0 0 0
Post image

Welcome Magda Stożek as the #Scalarconf 2026 speaker!

🎙️ Flexible Modeling: Keeping Your Domain Pure with Scala 3

The full Scalar agenda is ready and waiting for you on our website!

🎟️ Grab your ticket here: scalar-conf.com/tickets

#scala #functionalprogramming

0 0 0 0

The floor is magma. ~ Alexandre Esteves. github.com/alexfmpe/sem... #Haskell #FunctionalProgramming

3 1 0 0
Lambda Calculus For Dummies: The Church Encoding
Lambda Calculus For Dummies: The Church Encoding YouTube video by Philomathia

Lambda calculus for dummies: The Church encoding. youtu.be/CL1LAKMsyKg #LambdaCalculus #FunctionalProgramming

4 0 0 0
Preview
Category Theory for Programming In these lecture notes, we give a brief introduction to some elements of category theory. The choice of topics is guided by applications to functional programming. Firstly, we study initial algebras, ...

Category theory for programming. ~ Benedikt Ahrens, Kobe Wullaert. arxiv.org/abs/2209.012... #CategoryTheory #Haskell #LeanProver #FunctionalProgramming

4 0 1 0
Preview
Composing Software All software design is composition: the act of breaking complex problems down into smaller problems and composing those solutions. Learn to do it well.

Composing Software: An Exploration of Functional Programming and Object Composition in JavaScript by Eric Elliott is the featured course on Leanpub!

Link: leanpub.com/courses/lean...

#ComputerProgramming #FunctionalProgramming #Javascript #Software #SoftwareEngineering #SoftwareArchitecture

0 0 1 0
OOP Is A Construct Of Oppression Installed By The Bourgeoisie

OOP Is A Construct Of Oppression Installed By The Bourgeoisie

OOP Is A Construct Of Oppression Installed By The Bourgeoisie

#oop #Objectorientedprogramming #Functionalprogramming #Cleancode #Refactoring

programmerhumor.io/programming-memes/oop-is...

0 0 1 0
Preview
Readings shared March 4, 2026 The readings shared in Bluesky on 4 March 2026 are: When AI writes the world’s software, who verifies it? ~ Leonardo de Moura. #AI #LeanProver #ITP Formalising sphere packing in Lean. ~ Chris Birkbec

Readings shared March 04, 2026. jaalonso.github.io/vestigium/po... #AI #AI4Math #CoqProver #FunctionalProgramming #Haskell #ITP #LeanProver #Math #RocqProver

1 0 0 0

Monuses and heaps. ~ Donnacha Oisín Kidney. doisinkidney.com/posts/2026-0... #Haskell #FunctionalProgramming

2 1 0 0
Preview
The ambiguity of arrows To transform or to interact?

New tale: talesfrom.dev/blog/the-amb... in which we see developers and architects interpreting diagrams.

#objectorienteddesign #functionalprogramming #empathydrivendesign #domaindrivendesign #softwarearchitecture #softwaredesign #collaborativesoftwaredesign

1 0 0 0
Preview
Racket v9.1 _posted by Stephen De Gabrielle and John Clements_ We are pleased to announce Racket v9.1 is now available from https://download.racket-lang.org/. As of this release:: Documentation organization and navigation...

🦾 Racket v9.1

#racketlang #functionalprogramming

2 1 0 0
Preview
Dualities in Dependency Injection • Buttondown Hello! Last email I announced early access sales for the book. I'm both surprised and delighted that so many of you went and purchased a copy. Thank you! It...

📖 A new book by Noel Welsh is in the making. Read a preview about the approaches to dependency injection in FP and OOP to fully understand the connection between them. 👇 buttondown.com/functionalpr... #scala #functionalprogramming

1 0 0 0

Just joined Bluesky! Senior F# engineer based in Barcelona — 10+ years building production systems with DDD, event sourcing, and Ports & Adapters. Excited to connect with the functional programming community here.
#fsharp #dotnet #functionalprogramming

17 3 0 0
Preview
How Function Composition Can Make Your Code Better

Turn branching C# into clear, composable pipelines with practical function composition patterns from Mori. See how small pure functions lead to code that is easier to test, maintain, and optimize.

#csharp #dotnet #functionalprogramming

0 0 0 0

Starting a new video series on #CategoryTheory. Please provide feedback. Brickbats welcome, especially of the constructive kind! #FunctionalProgramming

www.youtube.com/watch

0 3 0 0
Category Theory for the Working Programmer - 1.0 - Prologue
Category Theory for the Working Programmer - 1.0 - Prologue YouTube video by The Strong Static Type

Starting a new video series on #CategoryTheory. Please provide feedback. Brickbats welcome, especially of the constructive kind! #FunctionalProgramming

www.youtube.com/watch?v=aKIu...

2 1 0 0

Common Lisp Tamagotchi development log.

starting to actually lay down some code now...

#lisp #commonlisp #functionalprogramming

0 0 1 0
Preview
Readings shared February 24, 2026 The readings shared in Bluesky on 24 February 2026 are: Formalizing Gröbner basis theory in Lean. ~ Junyu Guo, Hao Shen, Junqi Liu, Lihong Zhi. #LeanProver #ITP #Math Integral curves and flows on Ban

Readings shared February 24, 2026. jaalonso.github.io/vestigium/po... #AI4Math #ATP #Agda #CoqProver #FunctionalProgramming #Haskell #ITP #IsabelleHOL #LLMs #LeanProver #Math #Reasoning #Vampire

1 0 0 0
Preview
Haskell meets Evariste Since its birth as a new scientific body of knowledge in the late 1950s, computer programming has become a fundamental skill needed in many other disciplines. However, programming is not easy, it is p...

Haskell meets Evariste. ~ Paulo R. Pereira, Jose N. Oliveira. arxiv.org/abs/2602.168... #Haskell #FunctionalProgramming

2 0 0 0
Post image

Welcome Andrei Kucharavy as the #Scalarconf 2026 speaker!

🎙️ Safer Code with LLMs: Scala Types Silver Bullet?

The full Scalar agenda is ready and waiting for you on our website!

🎟️ Grab your ticket here: scalar-conf.com/tickets

#scala #functionalprogramming

0 0 0 0
An entry point for Nix stuff.

# Writing your first flake

Your flake is the entry point to your application built and run with nix.

Your flake is a function from `inputs` (which consist of urls for getting package sets) to `outputs`, with outputs being one big _attribute set_.

This `outputs` _attribute set_ looks something like this (very much like a JSON object):

```nix
# outputs
{
  apps = { ... };
  checks = { ... };
  devShells = { ... };
  formatter = { ... };
  legacyPackages = { ... };
  nixosConfigurations = { ... };
  nixosModules = { ... };
  overlays = { ... };
  packages = { ... };
}
```

Every key in here is a special, magic key that Nix interprets in a certain way.

For the minimal (non-functional) flake:

```nix
{
  inputs = {};

  outputs = {...}: {};
}
```

all of them are empty.

Through populating them, we give our Nix Flake additional capabilities.

The first capability to give our Nix Flakes is normally a _development shell_.

In Nix Language, we create this like this:

```nix title="flake.nix"
{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
  };

  outputs = { nixpkgs, ... }: {
    devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell {};
  };
}
```

And run it via `nix develop` (getting it? The `devShells` output gets run by `nix develop`):

```shell
> nix develop
(nix-shell-env)>
```

But that doesn't do anything yet.

For it to do something we need to add something into the devshell:

```nix title="flake.nix" del={7} ins={8-10}
{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
  };

  outputs = { nixpkgs, ... }: {
    devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell {};
    devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell {
        packages = [ nixpkgs.legacyPackages.x86_64-linux.hello ];
    };
  };
}
```

(Run `nix develop`, and then we have the `hello` executable available.):

```shell
> nix develop
(nix-shell-env)> hello
Hello, world!
```

Let's clean this up a bit, and then we're done for now.  
There's lots of repetition in the current file, and the solution to this is not as easy as inserting a `let` block.

The accepted and easily extensible solution for this is flake-parts, but their homepage is pretty hard to understand at first.

We want to translate our example to this:

```nix title="flake.nix"
{
  inputs = {
    nixpkgs.url = "https://github.com/nixos/nixpkgs?ref=nixos-unstable";
  };

  outputs = inputs@{ flake-parts, ... }:
    flake-parts.lib.mkFlake { inherit inputs; } {
      systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ];
      perSystem = { pkgs, ... }: {
        devShells.default = pkgs.mkShell {
          packages = [ pkgs.hello ];
        };
      };
    };
}
```

This even has the benefit that it will work on all the systems specified.

<Draft>

# Evaluated Flake top level

You can inspect your flake like this:

```shell
nix repl .
> :load-flake . # shorthand ':lf .'
```

```nix
{
  _type = "flake";
  inputs = { ... };
  outputs = { ... };
  sourceInfo = { ... };
}
```

</Draft>

<References>
<ReferenceLink href="https://www.youtube.com/watch?v=JCeYq72Sko0">vimjoyer flakes guide</ReferenceLink>
</References>

An entry point for Nix stuff. # Writing your first flake Your flake is the entry point to your application built and run with nix. Your flake is a function from `inputs` (which consist of urls for getting package sets) to `outputs`, with outputs being one big _attribute set_. This `outputs` _attribute set_ looks something like this (very much like a JSON object): ```nix # outputs { apps = { ... }; checks = { ... }; devShells = { ... }; formatter = { ... }; legacyPackages = { ... }; nixosConfigurations = { ... }; nixosModules = { ... }; overlays = { ... }; packages = { ... }; } ``` Every key in here is a special, magic key that Nix interprets in a certain way. For the minimal (non-functional) flake: ```nix { inputs = {}; outputs = {...}: {}; } ``` all of them are empty. Through populating them, we give our Nix Flake additional capabilities. The first capability to give our Nix Flakes is normally a _development shell_. In Nix Language, we create this like this: ```nix title="flake.nix" { inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; }; outputs = { nixpkgs, ... }: { devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell {}; }; } ``` And run it via `nix develop` (getting it? The `devShells` output gets run by `nix develop`): ```shell > nix develop (nix-shell-env)> ``` But that doesn't do anything yet. For it to do something we need to add something into the devshell: ```nix title="flake.nix" del={7} ins={8-10} { inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; }; outputs = { nixpkgs, ... }: { devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell {}; devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell { packages = [ nixpkgs.legacyPackages.x86_64-linux.hello ]; }; }; } ``` (Run `nix develop`, and then we have the `hello` executable available.): ```shell > nix develop (nix-shell-env)> hello Hello, world! ``` Let's clean this up a bit, and then we're done for now. There's lots of repetition in the current file, and the solution to this is not as easy as inserting a `let` block. The accepted and easily extensible solution for this is flake-parts, but their homepage is pretty hard to understand at first. We want to translate our example to this: ```nix title="flake.nix" { inputs = { nixpkgs.url = "https://github.com/nixos/nixpkgs?ref=nixos-unstable"; }; outputs = inputs@{ flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ]; perSystem = { pkgs, ... }: { devShells.default = pkgs.mkShell { packages = [ pkgs.hello ]; }; }; }; } ``` This even has the benefit that it will work on all the systems specified. <Draft> # Evaluated Flake top level You can inspect your flake like this: ```shell nix repl . > :load-flake . # shorthand ':lf .' ``` ```nix { _type = "flake"; inputs = { ... }; outputs = { ... }; sourceInfo = { ... }; } ``` </Draft> <References> <ReferenceLink href="https://www.youtube.com/watch?v=JCeYq72Sko0">vimjoyer flakes guide</ReferenceLink> </References>

Especially this here for Nix Flakes :)

#Nix #Simplicity #FunctionalProgramming

0 0 1 0
# Install Nix

The installer on the website sucks (doesn't work with SELinux, for example), but there is a community-maintained one:

```shell
curl -fsSL https://artifacts.nixos.org/nix-installer | sh -s -- install
```

With that completed, go write your first Nix Flake

# Install Nix The installer on the website sucks (doesn't work with SELinux, for example), but there is a community-maintained one: ```shell curl -fsSL https://artifacts.nixos.org/nix-installer | sh -s -- install ``` With that completed, go write your first Nix Flake

I've added a bit more barebones Nix stuff that can be confusing at first :)

#Nix #OS #ProgrammingLanguage #nixpkgs #NixOS #FunctionalProgramming #DeclarativeProgramming

0 0 1 0
Preview
Readings shared February 19, 2026 The readings shared in Bluesky on 19 February 2026 are: Hennessy-Milner logic in CSLib, the Lean computer science library. ~ Fabrizio Montesi, Marco Peressotti, Alexandre Rademaker. #LeanProver #ITP

Readings shared February 19, 2026. jaalonso.github.io/vestigium/po... #AI4Math #ATP #CSLib #CompSci #Dedukti #FunctionalProgramming #Haskell #ITP #IsabelleHOL #LLMs #LeanProver #Math #Mizar #RocqProver #Vampire

0 0 0 0
Preview
Composing Software All software design is composition: the act of breaking complex problems down into smaller problems and composing those solutions. Learn to do it well.

Composing Software: An Exploration of Functional Programming and Object Composition in JavaScript leanpub.com/courses/lean... by Eric Elliott is the featured course on the Leanpub homepage! leanpub.com #ComputerProgramming #FunctionalProgramming #Javascript #Software #SoftwareEngineering

1 0 0 0
Post image

#Exercitium: Matriz zigzagueante. jaalonso.github.io/exercitium/p... #Haskell #FunctionalProgramming #Math

2 1 0 0
Post image

#Exercitium: Mínimo número de cambios para igualar una lista. jaalonso.github.io/exercitium/p... #Haskell #FunctionalProgramming

0 0 0 0
Post image

#Exercitium: Diagonales secundarias de una matriz. jaalonso.github.io/exercitium/p... #Haskell #FunctionalProgramming #Math

0 0 0 0
Preview
Functional Programming in Java: Valhalla, Pattern Matching, and Records - Java Code Geeks Explore Java's pragmatic evolution toward functional programming with Project Valhalla's value types, pattern matching enhancements (JEP 441)

Functional Programming in Java: Valhalla, Pattern Matching, and Records Java’s pragmatic evolution: borrowing functional programming’s best ideas while maintaining backward compatibility Java i...

#Core #Java #FunctionalProgramming #Java #ProjectValhalla

Origin | Interest | Match

0 0 0 0
Preview
Haskell Wizard Become a real Haskell wizard with these two books! On the one hand, get your hands dirty with every major library in the ecosystem. On the other hand, climb the ivory tower and deepen your knowledge…

Haskell Wizard leanpub.com/b/haskell-wi... by Alejandro Serrano Mena is the featured bundle on the Leanpub homepage! leanpub.com #Haskell #FunctionalProgramming

Find it on Leanpub!

1 0 0 0