top | item 44466989

(no title)

aranchelk | 8 months ago

I disagree. There are many operators that you’ll never use but if you memorize (^.), (.~), and (%~), you’re pretty much set for a lot of real-world software development.

Per Kmett’s original talk/video on the subject, I can confirm my brain shifted pretty quickly to look at them like OOP field accessors. And for the three above, the mnemonics are effective:

“^.” is like an upside down “v” for view.

“.~” looks like a backwards “s” for setters.

“~%” has an tilde so it’s a type of setter and “%” has a circle over a circle, so it’s over.

I’ll also add that my experience in recent versions of PureScript things get even nicer: visible type application lets you define record accessors on the fly like:

foo ^. ln@“bar” <<< ln@“baz”

“.” Is unfortunately a restricted character and is not the composition operator like Haskell, but I alias “<<<“ with “..”

The pretty obvious question with the above is: why don’t you just write “foo.bar.baz”. In my case I use a framework that uses passed lenses for IoC, but I think “%~” is always nicer and less repetitive than the built-in alternative.

discuss

order

No comments yet.