Many people represent functional programming as something very complex and "science-intensive", and representatives of the OP-community - aesthetic philosophers living in an ivory tower.
Until recently, such a view of things really was not far from the truth: we say FP, we mean Haskel and the theory of categories. Recently, the situation has changed and the functional paradigm is gaining momentum in web development, not without the help of F #, Scala and React. Let's take a look at the "patterns" of functional programming that are useful for solving everyday problems from the point of view of the OOP paradigm.
OOP is widely spread in the development of applied software for more than a decade. We are all familiar with SOLID and GOF. What will be their functional equivalent? .. Functions! Functional programming is simply "different" and offers other solutions.
The order of evaluation of expressions is determined by a particular implementation, except when the language guarantees a certain order of calculations. If, in addition to the result, evaluating the expression causes changes in the runtime, then the expression is said to have side effects.In our internal newsletter about C #, a regular question arises, which concerns the correct interpretation of such constructions:
a -= a *= a;In response, I ask:
p[x++] = ++x;
Yes, who writes such a code with an imperturbable look? It's one thing when you write this, trying to win at the International COC Contest, or if you want to write a puzzle - but in both cases you realize that you are doing something non-standard. That, there really is someone who writes a - = a * = a and p [x ++] = ++ x; and thinks to himself "Shit, yes I write really cool code! "
About a year ago we published in our blog a series of articles on development of Visual Studio plugins in C#. We have recently revised those materials and added new sections and now invite you to have a look at the updated version of the manual.
Creating extension packages (plug-ins) for Microsoft Visual Studio IDE appears as quite an easy task at the first sight. There exist an excellent MSDN documentation, as well as various articles, examples and a lot of other additional sources on this topic. But, at the same time, it could also appear as a difficult task when an unexpected behavior is encountered along the way. Although it can be said that such issues are quite common to any programming task, the subject of IDE plug-in development is still not thoroughly covered at this moment.
I decided to fool around a bit with the plugin and the picture to attract your attention. A whole lot of articles on programming regularly appear on the Internet, but most of them are unfortunately brief and all about nothing. But we are sure that our material is extremely useful, and it will be a pity if it remains unnoticed. We tell our users in every detail about how to develop plugins in C# for the Visual Studio 2005/2008/2010/2012 development environment. This material is based on our own experience and describes some subtleties you won't read anywhere about.