I don't actually care about functional programming, but someone told me that they were handing out burritos over here?
In 2025, just try and see.
I am pretty sure like algol like languages FP isn't a monolith it is a broad stroke combination of the following things
-
functions, types and values are often on the same plane (like Lean, Coq, etc) or types and (functions + values) have a clear separation but one can create multiple hierarchies in those 2 levels (OCaml, Haskell, etc)
-
they often use immutable data structures or explicitly state if it is mutable
-
every line is a program is an expression, when it is a statement it still returns some signal (usually unit)
-
lispy langs or other gradually typed languages are not statically type checked and ML like langs are statically type checked
Also all these features are ime just how I want to do programming. It is merely a subjective thing which I find comfortable to program in.
No, this is an explanation of dataflow programming. Functional programming is only connected to dataflow programming by the fact that function application necessarily forces data to flow. Quoting myself on the esolang page for "functional paradigm":
The functional paradigm of language design is the oldest syntactic and semantic tradition in computer science, originating in the study of formal logic. Features of languages in the functional paradigm are not consistent, but often include:
- The syntactic traditions of combinatory logic and lambda calculus, carried through the Lisp, ML, and APL families
- Applicative trees and combining forms
- A single unified syntax for expressions, statements, declarations, and other parts of programs
- Domain-theoretic semantics which admit an algebra of programs
- Deprecation or removal of variables, points, parameters, and other binders in favor of point-free/tacit approaches
This definition comes from a famous 1970s lecture. The author is a Scala specialist and likely doesn't realize that Scala is only in the functional paradigm to the extent that it inherits from Lisps and MLs; from that perspective, functional programming might appear to be a style of writing code rather than a school of programming-language design.
The functional paradigm of language design is the oldest syntactic and semantic tradition in computer science
Pretty sure spaghetti code is older.
Also, structured programming was developed in the 1950ies, manifest by ALGOL being published in 1958.. McCarthy's first publication on LISP was surprisingly close to that, in 1960.
I do not agree. I think the main characteristic is use of side-effect-free functions, which the article illustrates nicely.
Of course it will be "more functional" if you write in Clojure or Scheme. Or go hardcore with Haskell. But as John Carmack wrote, you can practice functional programming in C++:
Very few languages (or programmers!) are able to check that a function doesn't have side effects. In particular, checking that a function doesn't diverge generally requires a proof assistant, like in F* and Lean.
Your definition of functional programming is as valid as any, but it's so strict that even Haskell would be mid-tier in the functional ranking.
Programming
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev