Functional programming is a programming paradigm which primarily uses functions as means for building abstractions and expressing computations that comprise a computer program.
Questions tagged [functional-programming]
391 questions
139
votes
7 answers
Is Category Theory useful for learning functional programming?
I'm learning Haskell and I'm fascinated by the language. However I have no serious math or CS background. But I am an experienced software programmer.
I want to learn category theory so I can become better at Haskell.
Which topics in category…
dan
80
votes
4 answers
Dependent types vs refinement types
Could somebody explain the difference between dependent types and refinement types? As I understand it, a refinement type contains all values of a type fulfilling a predicate. Is there a feature of dependent types which distinguishes them?
If it…
Joey Eremondi
- 30,277
- 5
- 67
- 122
38
votes
3 answers
How is algorithm complexity modeled for functional languages?
Algorithm complexity is designed to be independent of lower level details but it is based on an imperative model, e.g. array access and modifying a node in a tree take O(1) time. This is not the case in pure functional languages. The Haskell list…
wsaleem
- 581
- 6
- 10
33
votes
2 answers
How do Functional Reactive Programming and the Actor model relate to each other?
FRP is about streaming events and behaviours through pure functions. The Actor model - at least, as implemented in Akka - is about streaming immutable messages (which can be considered to be discrete events) through potentially impure objects,…
Robin Green
- 703
- 2
- 7
- 11
31
votes
3 answers
What is a brief but complete explanation of a pure/dependent type system?
If something is simple, then it should be completely explainable with a few words. This can be done for the λ-calculus:
The λ-calculus is a syntactical grammar (basically, a structure) with a reduction rule (which
means a search/replace…
MaiaVictor
- 4,199
- 2
- 18
- 34
30
votes
2 answers
Is Lambda Calculus purely syntactic?
I've been reading for a few weeks about the Lambda Calculus, but I have not yet seen anything that is materially distinct from existing mathematical functions, and I want to know whether it is just a matter of notation, or whether there are any new…
Neil
- 431
- 4
- 5
29
votes
2 answers
How to implement a Prolog interpreter in a purely functional language?
Is there a clear reference, with pseudo-code, on how to go about implementing a Prolog interpreter in a purely functional language? That which I have found so far seems to deal only with imperative languages, is merely a demonstration of Prolog…
Jimster
- 393
- 1
- 3
- 4
28
votes
3 answers
What is the relation between functors in SML and Category theory?
Along the same thinking as this statement by Andrej Bauer in this answer
The Haskell community has developed a number of techniques inspired by
category theory, of which monads are best known but should not be
confused with monads.
What is the…
Guy Coder
- 5,181
- 2
- 30
- 65
24
votes
0 answers
Can a calculus have incremental copying and closed scopes?
A few days ago, I proposed the Abstract Calculus, a minimal untyped language that is very similar to the Lambda Calculus, except for the main difference that substitutions are O(1) (i.e., variables only occur once) and copying is an explicit,…
MaiaVictor
- 4,199
- 2
- 18
- 34
24
votes
2 answers
Is computation expression the same as monad?
I'm still learning functional programming (with f#) and I recently started reading about computation expressions. I still don't fully understand the concept and one thing that keeps me unsure when reading all the articles regarding monads (most of…
Grzegorz Sławecki
- 345
- 2
- 8
23
votes
2 answers
What is meant by Category theory doesn't yet know how to deal with higher-order functions?
In reading Uday Reddy's answer to What is the relation between functors in SML and Category theory? Uday states
Category theory doesn't yet know how to deal with higher-order
functions. Some day, it will.
As I thought Category theory was able to…
Guy Coder
- 5,181
- 2
- 30
- 65
23
votes
4 answers
Why do we use persistent data structures in functional programming?
Functional programming employs persistent data structures and immutable objects. My question is why is it crucial to have such data structures here? I want to understand at a low level what would happen if the data structure is not persistent? Would…
gpuguy
- 1,819
- 3
- 22
- 32
22
votes
2 answers
Category theory (not) for Programming?
After learning Haskell and other not so pure FP languages I decided to read about Category theory. After gaining good understanding of Category theory I started thinking about how the concepts of category theory can be used to think about designing…
Ankur
- 628
- 3
- 12
21
votes
5 answers
Lambda calculus outside functional programming?
I'm a university student, and we're currently studying Lambda Calculus. However, I still have a hard time understanding exactly why this is useful for me. I realize if you do loads of functional programming it might be useful, however I reckon that…
Jacob
- 313
- 1
- 6
21
votes
1 answer
What classes of data structures can be made persistent?
Persistent data structures are immutable data structures. Operations on them return a new "copy" of the data structure, but altered by the operation; the old data structure remains unchanged though. Efficiency is generally accomplished by sharing…
Realz Slaw
- 6,251
- 33
- 71