you are viewing a single comment's thread
view the rest of the comments
[–] 27 points 11 months ago (6 children)

Serious question; how does Calculus apply to programming? I’ve never understood.

  • source
  • parent
  • hideshow 12 child comments
  • [–] 40 points 11 months ago (2 children)

    PID control is the classic example, but at a far enough abstraction any looping algorithm can be argued to be an implementation of the concepts underpinning calculus. If you're ever doing any statistical analysis or anything in game design having to do with motion, those are both calculus too. Data science is pure calculus, ground up and injected into your eyeballs, and any string manipulation or Regex is going to be built on lambda calculus (though a very correct argument can be made that literally all computer science is built of lambda calculus so that might be cheating to include it)

  • source
  • parent
  • hideshow 4 child comments
  • [–] 7 points 11 months ago* (1 child)

    Lambda calculus has no relation to calculus calculus, though.

    Data science is pure calculus, ground up and injected into your eyeballs

    Lol, I like that. I mean, there's more calculus-y things, but it's kind of unusual in that you can't really interpret the non-calculus aspects of a neural net.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 11 months ago* (1 child)

    Lambda calculus has no relation to calculus calculus

    I wanna fight your math teachers. No seriously, what did they tell you calculus is if it's got nothing in common with lambda calculus?

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 11 months ago* (1 child)

    Is there some connection I've just been missing? It's a pretty straight rewriting system, it seems Newton wouldn't have had much use for it.

    Lot's of things get called "calculus". Originally, calculus calculus was "the infinitesimal calculus" IIRC.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 11 months ago* (1 child)

    I think the issue here might be the overloading of terms - lambda calculus is both the system of notation and the common name for the conceptual underpinnings of computational theory. While there is little to no similarity between the abstracted study of change over a domain and a notational system, the idea of function composition or continuous function theory (or even just computation as a concept) are all closely related with basic concepts from "calculus calculus" like limit theory and integral progression.

    edit: clarity

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 11 months ago (1 child)

    I'm pretty sure the term was coined in the interwar era, so it's kind of interesting if people are just calling the concept of functions "lambda calculus" now. Obviously they're much older than that.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 11 months ago* (1 child)

    What? Nobody's doing that, it's just a distinct area of mathematics - I'm pretty confused where you got that idea from at all.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 11 months ago (1 child)

    So, I took it from these parts together:

    and the common name for the conceptual underpinnings of computational theory.

    the idea of function composition or continuous function theory (or even just computation as a concept) are all closely related with basic concepts from “calculus calculus” like limit theory and integral progression.

    I'm still not seeing the connection otherwise.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 11 months ago* (1 child)

    Okay, meta question here: What would a 'connection' that you're willing to accept actually look like? Those I've already presented are what I would call pretty explicit connections between the two fields (and fragmenting this into an explanation of how lambda calculus relies and expands on functional mechanics is going to be a loooong diversion). It's starting to feel like you're pretty entrenched in your initial position, and are just looking for an internet debate.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 11 months ago* (last edited 11 months ago)

    I wouldn't say entrenched, because I think this is honestly the first time I've seen the two come up together outside of their shared name. I was surprised, but then again sometimes reality is surprising.

    Both have function composition, and expressions which contain free variables in multiple places. At the time, that was just a shorthand for what they were trying to express about slight changes. A bit later, formal analysis was axiomised, and is full of infinite things like Cauchy sequences and general topology. In the 20th century, substitution of a composed function into free variables becomes an object of study of it's own, and found to be able to produce full complexity without anything else being added, being Turing equivalent.

    All the infinite and continuous stuff that makes calculus work, at least as it's considered abstractly, doesn't really translate into a discrete system. You can numerically approximate it, and I guess you could even use lambda calculus-like functional language to do that, but I'm not mad it never came up in my math courses, like in your original comment.

    If there's nothing more to add to that, I am sorry for wasting your time.

  • source
  • parent
  • [–] 17 points 11 months ago

    Graphics programming is the most obvious one and it uses it plenty, but really any application that can be modeled as a series of discrete changes will mostly likely be using calculus.

    Time series data is the most common form of this, where derivatives are the rate of change from one time step to the next and integrals are summing the changes across a range of time.

    But it can even be more abstract than that. For example, there's a recent-ish paper on applying signal processing techniques (which use calculus themselves, btw) to databases for the purposes of achieving efficient incremental view maintenance: https://arxiv.org/abs/2203.16684

    The idea is that a database is a sequence of transactions that apply a set of changes to said database. Integrating gets you the current state of the database by applying all of the changes.

  • source
  • parent
  • [–] 14 points 11 months ago (2 children)

    that can't be right. maybe they meant lambda calculus? programmers are definitely good at applied logic, graph theory, certain kinds of discrete math etc. but you're not whipping out integrals to write a backend.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 12 points 11 months ago*

    Any function that relies on change over a domain is reliant on concepts that are fundementally calculus. Control systems, statistical analysis, data science, absolutely everything in networking that doesn't involve calling people on the phone to convince them to give you their password, that is all calculus.

  • source
  • parent
  • [–] 6 points 11 months ago

    Many things that work with time series data use calculus all the time. Both derivatives and integrals are very useful in that context: derivatives being the rate of change at some particular time step, and integrals being the sum of the changes across a range of time steps.

    There's a pretty wide range of applications.

  • source
  • parent
  • [–] 4 points 11 months ago (1 child)

    good physics/graphics engine require calculus

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 11 months ago (1 child)
  • [–] 1 point 11 months ago

    If you write them yourself. Then you actually need a bit of math.

    But claiming that you need math skills as a programmer because some kinds of programs need you to know maths is like claiming every programmer needs to know a lot about logistics because some people write software for warehouses.

  • source
  • parent