This is how I think about programming and how I design software.
You don’t need a functional language to do this. However it does require more discipline when the language doesn’t enforce purity.
And once I started thinking about software this way I realised that events are important and should be the core of any software design. Basically the application is a single function that takes an event and the current state, and computes a new state and zero or more events.
You don’t need a functional language to do this. However it does require more discipline when the language doesn’t enforce purity.
And once I started thinking about software this way I realised that events are important and should be the core of any software design. Basically the application is a single function that takes an event and the current state, and computes a new state and zero or more events.