Functional programming (also called FP) is a way of thinking about software construction by creating pure functions. It avoid concepts of shared state, mutable data observed in Object Oriented Programming.
Functional langauges empazies on expressions and declarations rather than execution of statements. Therefore, unlike other procedures which depend on a local or global state, value output in FP depends only on the arguments passed to the function.
What is Category Theory? It isn’t a topic we have discussed in a Delphi context. Definitions in relation to programming are hard to come by. Most references mention Haskell.
Come along and hear Paul talk about these topics, how they relate to each other and how they can influence our Delphi code.
Our meeting is online this month, with the Zoom connection opening around 6 pm (Melbourne time) .
Public Soapbox where attendees can ask questions, share discoveries or talk about code
Functional Programming and Category Theory with Paul McGee
Zoom meeting details will be posted shortly before the meeting. Check back to this topic for details.
To finish off the ADUG Melbourne evening, some functional programming humour - Haskell at least.
(I have not verified much but the reference to “Mondads are like burritos” is included https://blog.plover.com/prog/burritos.html As per usual, there seem to be some invalid links. )
Humor - HaskellWiki Who says functional programmers never have any fun? Here’s some of the hoaxes and other funny stuff from several sources. Ranjit Jhala performs Lambda Style! wiki.haskell.org |
I forgot to say that the version of Craig Stuntz’s talk I put on YouTube isn’t best quality, and has a non-linear relationship between the video part and the audio part. I had resorted to recording the screen of a WinXP VM to capture it.
Another thing I had thought to say - and forgot - was an analogy for functors via database operations.
Consider taking two different paths: Updating several records in memory, then storing in a db … vs storing those records in a db, then sending the updates as remote db operations.
It is in a sense the “same” operation, and should have the same end result no matter which path you use.
(But there can be practical advantages by going one way or the other)
[Another example: multiplying a bunch of numbers and taking the (math) Log … vs calculating Log on those numbers and adding them up.]