[ANN] ProjectEuler.jl v0.1.0: Exploring Challenging Mathematical Questions from ProjectEuler in Julia's Versatile REPL

Package

ProjectEuler.jl : A package that allows offline access to challenging mathematical problems from Project Euler through Julia’s REPL. It is a valuable resource for those looking to improve their Julia programming skills while solving interesting mathematical problems.

Why this package?

Julia is a versatile multi-purpose programming language with a thriving community of contributors (as evidenced by projects curated on https://juliapackages.com) that speak of its applications in nearly all aspects of computing. However, it truly shines in the field of SCIENTIFIC COMPUTING. Even those who criticize Julia cannot deny its power and speed in this domain. Julia is undoubtedly one of the top three scientific computing languages for high-performance numerical analysis and computational science in the 21st century. It has even earned a place in the exclusive petaflop club of programming languages, which speaks volumes about its capabilities. Simply put, if you need a language that can handle the most complex scientific computations with ease, Julia is an excellent choice.

With the above, I have been wrapping my head around the idea that most mathematicians (of the present-day and future) would really have no choice but to use Julia, as it is faster and easier to use than its counterparts. This implies that more mathematicians and people involved in computational science would be working with Julia. To make up for this, we decided to create a package that basically just web scrapes (legally) https://projecteuler.net and brings its thought-provoking mathematical problems to Julia’s versatile REPL.

Who does it benefits?

With this package:

  1. Mathematicians and computational scientists using Julia can solve the problems in their spare time for fun without leaving the Julia REPL.

  2. Members of the https://projecteuler.net platform who solve the problems using Julia can view the problems from the REPL and then leave the REPL only to submit their answer (a feature we’re looking forward to adding if it does not infringe on https://projecteuler.net copyright laws).

  3. Newbies and beginners to the Julia programming language can also practice with these problems as they learn the programming language, honing their Julia programming skills and developing problem-solving skills along the way.

What are the limitations of the package?

The two big limitations of the package are that, although Julia’s REPL is very versatile compared to what is available in the computing space, it still has some limitations that hinder the package:

  1. Complex mathematical equations involving fractions and other esoteric mathematical equations cannot be rendered correctly in the REPL.

  2. Images cannot be rendered in the Julia REPL.

If you know of any package or a way to solve either of these limitations, please provide your suggestion here, or as an issue, pull request, or discussion in the package repository.

Contributions

As always within the Julia community, contributions of any form to the package are welcome and appreciated. Please open an issue, pull request, or discussion in the package repository to discuss your contribution.

4 Likes

Regarding images in the terminal, this is one option, I remember seeing other options too:

Search JuliaHub for rich display in the REPL or terminal.

1 Like

Wow sounds very cool, would definitely start looking into how to use it. Thank you @juliohm

Thank you, will look into it.

Term.jl can also be a good option for REPL-based art

1 Like

This is really cool, thank you! This may be outside of the scope of this package, so feel free to ignore, but notebooks are really good for rich output like equations and images. Pluto and Jupyter are two good examples. They are also arguably more user friendly for beginner.

Yeah I was aware of that @jondea . But the thing is that every one who use Julia uses the Julia REPL (it’s too versatile to ignore if you really want to make your development workflow for Julia robust) but not everyone who uses Julia uses Jupyter or Pluto (me for example).

So yeah we could have just let Jupyter and Pluto render the complex math equations, but then it would be for only those using those softwares. The best way I think then is to just let everyone know the problem is not edited, so solutions to make it available in the REPL are suggested and provided.

2 Likes