Correct, that function doesn't have to parse immediately, but it does have to be aware your monad exists.
This isn't a problem if you're the one writing the function, but if you're using a 3rd party library that doesn't know about your monad, then fmap can be very useful.
Yes, but if it we're talking about parser monads, then usually you can't apply a function directly to a parser's result without either:
1. Being within the same monad. For example, you can `bind` a `Parser a` to a function only if it returns `Parser b`.
2. Performing an actual action and breaking it out of its monad.
For example, if you're using the Parsec library, and you have a `Parser Int`, you can't get to that int without using a function like `parse`, performs the actual action of parsing input text.
With a functor, you can compose a `Parser a` within an `a -> b` function, instead of having to return `Parser b` in your function.
So if you have a `Parser Int`, and you want to turn it into a parser that multiplies its parsed input by 2, you can write `fmap (*2) myParser`, instead of having to write `myParser >>= \a -> return (a * 2)`.
Parsers being functors means it's easier to compose them with other things, without having to actually perform the parse until you need to.
After reading this article, the conclusion I drew was, "Cool, so I can `fmap` over my parser now and transform what I parse using functions."
To answer your other questions: I'm not sure it means much for the code that does the actual parsing, nor how you specify the grammar's rules, it's more about being able to transform the output using functions.
If your static analyzer is a function, you could now write `fmap staticAnalyzer myParser`.
Another reason is that imperative languages have a lot of business inertia around them. It's expensive to rewrite existing code or switch to a new language, and most businesses can't justify this cost.
I love functional programming, but I doubt most companies that sell CRUD apps care about it.
I maintained a project like this for several years. My genuine advice to anyone considering creating an open-source library: either keep it super small forever, or make it closed-source + charge for licenses.
I wonder why tree-shaking wasn't always the default for, say, JS bundlers. If a compiler/analyzer knows what the entry point of a program is, as well as any symbols it exports to the outside world, isn't it relatively simple to figure out what's not being used?
Thanks for the sources. I can concede that most people do not support a reduced or lower-funded police presence.
As for the second part: someone simply choosing to be a police officer doesn't mean they should be demonized. Complying with the "blue wall of silence" by refusing to take an active stand against police misconduct, however, I believe warrants public backlash. The thing is, far too many officers are content to not say anything. And that is a large part of why they have seen more backlash recently.
I am not an activist, and this is not a manifesto. I don't understand why you brought that up.
Anyways:
The fact that most modern countries have police is not evidence that police departments are necessary.
In addition, the article is about the American police, which are notorious for their history of racial profiling, cover-ups, and numbers of civilian shooting deaths every year. Does most modern countries having police mean this is justified behavior?
If you could, please provide a link to a survey or study indicating that people who live in "high-crime" areas want more police.
And even if they did, that doesn't change the reason for the widespread backlash against police in the United States. It's not simply people "demonizing" a profession (which again, people choose to work in).
> Police are a necessary part of modern civilization. Full stop.
Are you sure? Lots of causes for crime (i.e. poverty) can't be solved by arresting or shooting people. I am convinced that part of the reason police reform is so difficult in the United States is that most people have never questioned neither the history of American policing (which started as slave patrols in many states), nor the necessity for heavily-armed police at all.
> If they have no repercussions for bad actions, then implement them.
This is not so easy, when both of the parties with political control in the U.S. receive donations from the prison industry...
EDIT: Lastly, in reference to your original point, the argument that police officers are being simply "demonized" is missing the bigger picture. Police aren't individual actors - they protect each other, even when they have crossed a line. And it's all by choice.
I'm busy learning art. All of the things I want to make (mostly games) will require good art, so this is as good an opportunity as ever to focus on that.
Yeah... This is the same sort of thing you see with, say, ActivityPub, that makes it a massive pain, if not totally impossible to implement it in a statically-typed language.
Comments like these are absolutely useless and contribute nothing to the conversation at all. There are benefits making a language, and people's goal doesn't always have to be "get as many people to use it as possible."
I had NO IDEA what Linux was at the time, but DSLinux helped me deepen my interest in computer science.
So, thanks to the creators, and everyone who contributed code.