scala-algorithms icon indicating copy to clipboard operation
scala-algorithms copied to clipboard

Upgrade to Scala 3

Open sentenza opened this issue 3 years ago • 10 comments

Update the whole project to Scala 3

sentenza avatar Sep 30 '21 08:09 sentenza

Few notes here:

  • in MutableSorting Do-While syntax needs to be dropped (see here)
  • in Tree there are some minor errors for generic runtime erasure

Can't see anything else.

mfirry avatar Oct 15 '21 10:10 mfirry

Unless we want to move to optional braces as well.

mfirry avatar Oct 15 '21 10:10 mfirry

Ah no sorry. Of course all ADTs can be rewritten using enums now. Should we do that as well?

mfirry avatar Oct 15 '21 10:10 mfirry

  • in MutableSorting Do-While syntax needs to be dropped (see here)

@mfirry yes, drop it! ;)

  • in Tree there are some minor errors for generic runtime erasure

Use enum for ADTs 👌

I assigned this one to you. Happy coding! 🎈

sentenza avatar Oct 15 '21 10:10 sentenza

Loudly thinking: I think enums for ADT will basically mean breaking out from Scala 2. Not sure you want that. How about creating a new repo? hacktoberfest-scala3-algorithms?

mfirry avatar Oct 15 '21 13:10 mfirry

Loudly thinking: I think enums for ADT will basically mean breaking out from Scala 2. Not sure you want that. How about creating a new repo? hacktoberfest-scala3-algorithms?

I'd rather prefer to have a single repo and a main branch. Maybe we could start creating a first Scala 3 version while tagging the previous one as scala-2.

I don't want to fall into the same errors that the Python community did in the near past when switching to a new major version of the language.

sentenza avatar Oct 15 '21 15:10 sentenza

I respectfully disagree here. If this was a library, I would agree 100%. This seems to be rather a showcase (and a very good one!) of Scala () implementation of algorithms and data structure.

This to me is a clear case where it can be even useful a separation between Scala 2 and Scala 3.

Having said that, of course one can do a mix, but I'd rather not :D

mfirry avatar Oct 15 '21 15:10 mfirry

submodules?

ivanopagano avatar Oct 15 '21 21:10 ivanopagano

submodules?

It's definitely an idea.

mfirry avatar Oct 16 '21 07:10 mfirry

I respectfully disagree here. If this was a library, I would agree 100%. This seems to be rather a showcase (and a very good one!) of Scala () implementation of algorithms and data structure.

This to me is a clear case where it can be even useful a separation between Scala 2 and Scala 3.

Having said that, of course one can do a mix, but I'd rather not :D

Please keep in mind that this is an educational project. The code presented here should be used to learn how to implement common algorithms in Scala. There is no dependency with anything else but the standard library for this specific reason.

It's easy to define a common strategy here. The perfect analogy is the way EPFL and Coursera are managing the revamped Scala courses: they're just updating their content to target Scala 3. The same goes with the books and all the official manuals.

Scala 2 is now the past.

No backsies. :no_good_man:

sentenza avatar Oct 16 '21 11:10 sentenza