Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
This comment is hidden because it contains spoiler information about the solution
The Rust translation of this kata depends on having solved the Rust version of the Isomorphism kata, which no longer exists.
I'm currently learning functional programming and type theory and this has been a really great Kata to introduce me to the concept.
I took some time to add a Scala Translation. Please review.
A suggestion: would love to see an Isomorphism-style kata where you'd have to write a
Category
instance forISO
or something else -- and thanks to that, leverage some wicked cool machinery to achieve something useful.What has really kicked me in this kata: the realization that I could code every ISO by hand, as explicit
(ltr, rtl)
pairs with convoluted messy definitions ofltr, rtl
-- but I didn't have to, because Haskell could build those functions automatically, just by following my high-level proofs. Isn't this amazing!So, perhaps this insight could be reached from another angle: by offering the choice to hand-code a huge monster term VS to derive that same term by type magic.
This comment is hidden because it contains spoiler information about the solution
This comment is hidden because it contains spoiler information about the solution
Fixed
isoUnOptional
. Please review the new Java translationJava translation added!
Excited!
I am a little confused with one specific test in Haskell, but it's only a edge case, I didn't put it into the translation,
but it won't affect anything, because there're other tests that check the same thing.