Get the latest tech news

The Expression Problem and its solution


craft of programming is almost universally concerned with different types of data and operations/algorithms that act on this data [1]. Therefore, it's hardly surprising that designing abstractions for data types and operations has been on the mind of software engineers and programming-language designers since...

In that email, Wadler points to the paper"Synthesizing Object-Oriented and Functional Design to Promote Re-Use" by Krishnamurthi, Felleisen and Friedman as an earlier work describing the problem and proposed solutions. We kinda added a new type FunctionCall and can now visit it without changing existing code (assuming the virtual inheritance was built into the design from the start to anticipate this approach). Protocols leverage the host platform's (which in Clojure's case is mostly Java) ability to provide quick virtual dispatch, so using them is a very efficient way to implement runtime polymorphism.

Get the Android app

Or read this on Hacker News

Read more on:

Photo of Solution

Solution

Photo of Expression Problem

Expression Problem

Related news:

News photo

The Expression Problem and its solutions (2016)

News photo

A robot walks on water thanks to evolution's solution

News photo

Type checking is a symptom, not a solution