Home

Awesome

LambdaPrism

Scala OOP-FP pragmatic library for Artificial Intelligence

Introduction

Planning problem dialog screenshot

Intelligent systems are more and more widespread: as technology evolves, we need original solutions to handle data, to connect systems, to create models - more generally, to solve problems; disciplines like Artificial Intelligence and Operations Research constitute different aspects of a multifaceted tool that we can employ to tackle complexity in a formal but creative way.

LambdaPrism is an open source Scala library based on both OOP (Object-Oriented Programming) and FP (Functional Programming) to provide a taxonomy for expressing AI concepts, especially in the sectors of pattern matching and planning: it is designed to be part of the new kernel of GraphsJ, a container application for graph algorithms, but it can also be referenced as a standalone library.

Finally... there is more! :ghost: LambdaPrism is first of all a pragmatic playground (with no claims of completeness, but still very tested) for learning more about functional techniques applied to Artificial Intelligence: list processing, pattern matching, higher-order functions, currying, tail recursion and many more ideas (including ANTLR grammars), always trying to get the best of the OOP and the FP worlds! ^__^

Requirements

Scala 2.11.8 or later and Java 8u91 or later are recommended to employ LambdaPrism.

Core concepts

LambdaPrism's root package is info.gianlucacosta.lambdaprism and contains the following main subpackages:

For further information, the documentation is available in Scaladoc format and can be downloaded from the library's section in Hephaestus. Finally, the full open source code is available on its GitHub project page.

Referencing the library

LambdaPrism is available on Hephaestus and can be declared as a Gradle or Maven dependency; please refer to its dedicated page.

Alternatively, you could download the JAR file from Hephaestus and manually add it to your project structure.

Finally, LambdaPrism is also a standard OSGi bundle which you can employ in your OSGi architectures! ^__^

Special thanks

Special thanks to:

Further references