Type-directed language extension for effectful computations
Paper in proceeding, 2014

Computation types such as functors, applicative functors and monads have become common abstractions for modeling effectful computations in functional programming languages. They are often used together with special language extensions intended to simplify the syntax of monadic expressions. We can simplify it even more by employing types rather than just mechanical syntactic transformation. In this paper we present scala-workflow, a macro-based extension to the Scala programming language that offers uniform syntax for structuring effectful computations expressed as abstract interfaces with a stackable set of combinators. Unlike similar syntactic extensions, such as F#'s computation expressions, Haskell's do-notation and Scala's own for-expressions, scala-workflow allows users to transparently blend pure and effectful functions in a bounded context, as they are separated during macro expansion based on the types of subexpressions.

Effects

Monads

Scala

Functors

Macros

Author

Evgenii Kotelnikov

Chalmers, Computer Science and Engineering (Chalmers), Software Technology (Chalmers)

SCALA 2014 - Proceedings of the 5th Annual Scala Workshop, Co-located with ECOOP 2014

35-43
978-145032868-5 (ISBN)

Subject Categories

Computer and Information Science

DOI

10.1145/2637647.2637648

ISBN

978-145032868-5

More information

Created

10/8/2017