Skip to content

Latest commit

 

History

History

MonadicProgramming

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Monadic programming

This folder has two kinds of packages:

  1. for implementing, code generation of monads,

  2. utilization of the monad pipeline design pattern for different tasks.

Monad code generation

The approach taken here treats the Monadic programming pipeline as a Software design pattern.

The monads are obtained through code generation -- see the packages: MaybeMonadCodeGenerator, StateMonadCodeGenerator, and the article [1].

Applications

Using the State Monad package several packages are developed for different tasks in Machine Learning and Natural Language Processing.

The monad tracing package MonadicTracing.m demonstrates how a monad can act as Decorator in the Decorator design pattern.

Package structure and development workflow

The document "Package structure and develoment workflow" gives details of the structure and typical development workflow of the packages in this folder.

Presentations

The WTC 2017 presentation "Monadic Programming: With Application to Data Analysis, Machine Learning and Language Processing", [2], gives a good introduction and overview of the approach taken.

References

[1] Anton Antonov, "Monad code generation and extension", (2017), MathematicaForPrediction at GitHub.

[2] Anton Antonov, "Monadic Programming: With Application to Data Analysis, Machine Learning and Language Processing", Wolfram Technology Conference 2017. (YouTube video.)

[3] Anton Antonov, "A monad for classification workflows", (2018), MathematicaForPrediction at GitHub.