Questions tagged [functional-programming]
Use this tag for programs where "functional" style is important - likely making use of function composition and without side-effects. NOT simply because your code contains functions!
1,004 questions
4
votes
1
answer
118
views
Higher-kinded types in Rust
Also posted on Reddit.
As a small personal exercise, I'm trying to implement a notion of higher-kinded types in Rust using type-level defunctionalisation based on the "Lightweight higher-kinded ...
2
votes
2
answers
97
views
State management patterns in vanilla JavaScript
I am trying to manage state in vanilla JavaScript—without using frameworks like React or Vue. I am also not using state management libraries.
My requirements are:
Reactivity
Time Travel (Undo/Redo)
...
4
votes
1
answer
112
views
C# railway oriented programming with async support
In my application there are many business workflows. Most of them are quite simple and can be put in one function. A few of them however are very complex and have many business validations, require ...
3
votes
2
answers
122
views
Base16/32/64 implementation for C++ ranges
Introduction
The following code is an implementation of, in ambition, RFC 4648 compliant Base16, Base32 and Base64 conversions as range adaptors and constrained algorithms in C++23. It can be used at ...
2
votes
0
answers
74
views
std::ranges compile time (and run time) RFC 4648 compliant Base16 conversions in C++23 (improved 2)
This increment
This obsoletes a former version, after taking a great review into account:
The encoding now preserves sized_range and ...
3
votes
1
answer
182
views
Compile time (and run time) RFC 4648 compliant Base16 conversions as range adaptors in C++23 (improved) [duplicate]
Edit: obsoleted by an improved version.
Edit: now updated with unit tests that show that this implementation also works for non-forward ranges, i.e. string streams, files streams, on-the-fly encoding/...
4
votes
2
answers
333
views
Compile time (and run time) RFC 4648 compliant Base16 conversions as range adaptors in C++23
This obsoletes a former version and is obsoleted by an improved version.
The following code is an implementation of, in ambition, RFC 4648 compliant Base16 conversions as range adaptors in C++23. It ...
4
votes
1
answer
212
views
Hexadecimal conversions as range adaptors in C++23 that work at compile time (and run time) [duplicate]
This is obsoleted by a significantly better version.
The following code is an implementation of hexadecimal conversions as range adaptors in C++23. It can be used at compile time, but should of course ...
5
votes
3
answers
260
views
HackerRank, Haskell simple "compression" algorithm
The question asked is very straight-forward and is simple enough to solve. What I am looking for is that hopefully I can get some understanding for using the constructs and built-ins of the Haskell ...
5
votes
6
answers
432
views
Search values by priority in a Stream
I have a simple list of results, and I need to return only one value depending on content, for example:
...
3
votes
1
answer
414
views
Event sourcing javascript implementation
An event source built around an observer design pattern implementation…
...
1
vote
1
answer
72
views
Buffered source of HTMLElement(s)
Temporary storing the element(s) returned by document.querySelector and document.querySelectorAll methods could improve ...
8
votes
1
answer
120
views
Haskell 2-player TicTacToe terminal game
I want to get better at functional programming so I started with this simple 2-player TicTacToe game. Next I want to add a simple min-max algorithm to make it a 1-player game, but before that I'd like ...
8
votes
3
answers
2k
views
fmap for containers in c++
I implemented a simple fmap for containers. However containers don't have a unified function to add elements. So I wrote different concepts for different containers. Is there a better way to implement ...
3
votes
1
answer
110
views
In Java, replace for loop with condition with lambdas [closed]
I want to replace a for loop with a break/return condition inside with a lambda.
I think I have a good replacement, but I want ...