# Cactoos-math: math extension of Cactoos library

Cactoos is intrestion and unique library (my blog post about this). So I decided to create mathematical extension of this — Cactoos-math. This post provides an overview of library, in particular motivation and perspective.

## Motivation

At the very beginning of Jpeek, I contributed to this. I create class for OCC metric (Optimistic Class Cohesion). To calculate this metric you need to work with the graph, but there was nothing to allow operations on a graph and its adjacency matrix to be performed. Therefore, all calculations were performed procedural. This lead me to create Cactoos-math.

A list of why this project is interesting:

Yes, mathematical classes is overkill for Cactoos. It was discussed in various issues. I think it’s right that Yegor decide not to add math classes to Cactoos, since they are used very rarely in practice. And because it made it possible to create a library that could completely concentrate on the mathematical classes.

It is generally accepted that FP, rather than OOP, is more suitable for mathematical problems.

It is a good practice in Elegant Object Oriented Programming.

## Now

Now Cactoos-math library allows working with:

sets (unfortunately, Cactoos not contains this),

infinite sequence,

matricies,

directed graphs,

undirected graphs,

scalars representing some static methods from

*Math.**.

## Perspective

Classes for all static methods from *Math.** and interfaces that already exist will be added in the near future. There would also be Tree, FlowNetwork and maybe something else.