helderberto / maximus

⚔️ Lightweight functional utilities.
MIT License
16 stars 2 forks source link

Enhancement README.md project description and goals #27

Closed helderberto closed 3 years ago

helderberto commented 3 years ago

Description

Determine the problems this package is proposed to solve, the goals and write a better README.md to make more readable and understandable for users who want to use this package.

Context

The idea has started based on these packages: Ramda and Lodash, but I think these projects solve very well the problems that are proposed to solve.

Maybe we can think of a more lightweight and focused on functional programming toolkit, what do you think?

karranb commented 3 years ago

I think this project could focus on being a fp tool-belt. These are some cool functions that I think we should implement:

maybe filter (objects and arrays)

helderberto commented 3 years ago

I like this idea @karranb and IMO we can add methods to help to deal with arrays/objects.

What do you think @Mendrone, @danilowoz, @caiangums? It will be awesome to have some inputs about it. :D

caiangums commented 3 years ago

I think it'll be good having something like the basics for Arrays, as implemented by JS and extended to Objects. In functional languages, as everything is Data and Lists of Data, the basics should be dealing with this kind of thing:

Another (parallel?) step could be adding things like compose and memoization.

As a final thought, maybe consider using a library for testing like Jest and creating examples of usage of each function and examples of how the library deal with data and good practices.

karranb commented 3 years ago
Data: avoid mutations

it would be really nice to have a sort that doesn't mutate, 😂

helderberto commented 3 years ago

I was wondering about setting common utils to FP to import maybe with import { curry } from 'maximus/common' and break the other helpers like arrays, objects to improve the tree-shaking when importing this package.

helderberto commented 3 years ago

I think we have a consense about the goal of the project, what do you think about it? Considering it's okay I'll close this issue to think about the new README.md @karranb @caiangums