19,239 questions
0
votes
0
answers
49
views
Mutually recursive stack-safe functions with different types
I want to make my mutually recursive functions stack-safe, but because they have different signatures - one traverses a list and other a tree(?) of sorts - I'm not clear how to go about this.
Here's ...
1
vote
2
answers
114
views
Replacing the element in the list with the specific index using `foldr` —— Exercise 1.19 of Essentials of Programming Language
Here is the question from Mitchell Wand's Essentials of Programming Language:
Exercise 1.19 [⋆ ⋆] (list-set lst n x) returns a list like lst, except that the n-th element, using zero-based indexing, ...
Advice
0
votes
1
replies
78
views
How to effectively use ASP.NET core Hybrid Cache with Result<T> type
Suppose a scenario where:
you need to execute an expensive operation which can fail or succeed.
the result of the operation is modeled by using a result object Result<T>. The result object ...
Best practices
5
votes
3
replies
150
views
Is there a way to tuck in Ord inside Applicative?
I had a nice idea of using applicative for nondeterministic financial modelling. Or maybe it is a simple case of sentization. So the basic example is to define newtype ValueRange.
newtype ValueRange a ...
0
votes
1
answer
91
views
How to split a shell command into tokens in a quote-aware fashion? [closed]
The task
Given the following string¹
one ' two 'three four
the required function should split it in 3 tokens (one, two three, and four), in agreement with how the bash shell does:
$ function ...
0
votes
1
answer
124
views
What's the idiomatic/correct way to split a string into its first word and the rest of the string? [closed]
tl;dr
Ideally, I'd want the following
"hello world" is split in "hello" and " world"
" world" is split in "" and " world"
"hello "...
4
votes
1
answer
115
views
Understanding usage of withFileBlocking with named pipes
The following program
assumes that /path/to/mypipe is a named pipe, e.g. created via mkfifo /path/to/mypipe, with no readers/writers waiting yet,
runs two threads, of which
the main thread keeps ...
3
votes
2
answers
151
views
Functional core - Imperative shell: dealing with logic dependant on conditional & expensive IO operations
tldr; how does one deal with logic that depends on data that are too heavy to fetch up-front when subscribing to the functional core, imperative shell line of thought?
Years ago I was inspired by Gary ...
3
votes
2
answers
104
views
Why doesn't readFile block on unix pipe in which no write has happened yet?
If in a terminal I enter
mkfifo /tmp/pipe
echo hello > /tmp/pipe
(which blocks) and in another I run the haskell program
main = readFile "/tmp/foobar" >>= putStr
then I see it ...
2
votes
1
answer
86
views
What does it mean that the arguments to <*> and their associated effects are known statically?
I'm reading the paper Selective Applicative Functors. So far I've read from page 16 out 29, and I think I've understood the gist of this abstraction, but I'm having some trouble with some basic ...
1
vote
2
answers
237
views
How can I transform large nested PHP arrays immutably without creating expensive deep copies?
I’m working with large nested associative arrays in PHP and I need to apply transformations (like map, filter, reshape) immutably, meaning the original array should not be modified.
The problem is ...
1
vote
0
answers
120
views
How to parametrize a loop body with a function while guaranteeing performance?
Consider the following toy code which performs very simple (a few instructions) operations on a hot loop over a large amount of values:
template<float (*f)(float)>
void process_f(int count, ...
0
votes
1
answer
59
views
Haskell Parsec Parser giving strange error
I am having trouble getting the following code to work. I got it to work originally, then I changed it so all the Nonterminals also have positions. And I added the method parseLexeme that transforms ...
1
vote
1
answer
108
views
How can I avoid declaring full generic parameters when storing a custom typed object, while keeping type safety at compile time?
I've created a small library called StreamX, which acts like a type-safe, index-aware zipper to enable parallel streaming over multiple lists. It supports functional operations like forEach, map, ...
7
votes
2
answers
206
views
What is wrong with this closed type family in GHC2021-GHC2024 as compared to Haskell2010?
In Haskell in Depth, Chapter 11, there's an example aimed at avoiding character escaping in GHCi, which is what happens automatically when you enter print "ë", as it'll be printed like "...