• bitcrafter@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    4 days ago

    I don’t actually care about functional programming, but someone told me that they were handing out burritos over here?

  • Corbin@programming.dev
    link
    fedilink
    English
    arrow-up
    6
    ·
    5 days ago

    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.

  • shoebum@lemmy.zip
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    5 days ago

    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.