https://robertlisaru.github.io/ninety-nine-elm-problems/
- setup CI
- setup elm-review
- refactor into proper unit tests
- setup dev server
- show code for each problem
- allow input of a custom list to run the problems on
- search functionality
- responsive ui for mobile
- nicer ui
- search inside problem descriptions too
- dark theme
- setup cache in CI script for faster deployment
- come up with faster algorithms for Goldbach problems
- do not block UI with long operations
- add requirement text for all problems
- find missing problems
Elm is a purely functional programming language and a frontend web framework. If you are not used to functional programming, it will be challenging at first. But once you learn and use it for a while, it becomes a pleasure to write code.
- Most of the bugs reveal themselves at
compile time
. - No hidden
runtime exceptions
will be breaking your production code. - Functions have no
side effects
. - Application
components
are decopled and don't break eachother. - If you want to make a change, you just do it without the fear of breaking something else, as the
compiler
will guide you through all the code that needs to be updated to accomodate your change without breaking anything else. Error messages
are informative and you immediately know what to do.- No more
undefined
runtime errors. Everything is always defined. Application flow
is easy to follow in code.- Elm developers are friendly, helpful, and always excited to talk about Elm.
- After React, this was the 2nd web framework I had ever interacted with at the time, in 2021.
- At university I had mostly used imperative languages like Java, C, C++, PHP;
- Thinking in a functional style was not easy at first, but shortly became natural and intuitive to me.
- It took me 7 days to learn the Elm basics and build a small test app;
- After that, I jumped straight into a real-world production project, where I successfully deployed over 100 pull requests, and many thousand lines of code.
The elm tree is also a wonderful tree.
Install dependencies:
npm install
Run the start script:
npm start
It will open the app in the browser and watch for code changes.
Run the test script:
npm run test
It will run everything in the tests
folder.
Run the review script:
npm run review
It will review the code using the rules from ReviewConfig.elm
file.
Run te format script:
npm run format