rapala
Joined 16 years ago
Joined 16 years ago
First, the distribution of tax payers to different marginal tax rate brackets differ. That is, how many percent of US tax payers actually pay top marginal rate vs how many in Belgium do.
Second, the differences in purchasing power. What does the average income (or the top income for that matter) actually get you in different countries.
If given
1. Player can have a Weapon
2. Sword is a Weapon
3. Wizard is a Player
The from the statement "Wizard cannot have a Sword" follows a contradiction that "Player cannot have a Sword".
I've been trying to say the exact oppisite. C, C++, Javascript, all those languages provide ways to define abstract datatypes that cannot be circumvented (by "normal" code. Even Haskell has unsafePerformeIO). My latest argument was that people decide not to use those abstractions not because they are unavailable, but because it is more ergonomical or performant not to. The same happens even in ML, not all data is abstracted as an abstract data type.
I admit that I kinda pushed you into it, but you are moving the goal post. People indeed use public fields in languages like C and Javascript.
In C it's often done for the sake of performance. Hiding data behind a pointer has a cost.
In Javascript I would say it's lazyness above all. Front end programs often aren't that big nor pinacles of code quality.
But it is possible to define abstract data types in both languages. ML makes it a bit easier and some times even more performant, but it doesn't "own" the idea.
Abstractions are quite like immutability. You can enforce both in many languages, some just give you better tools for it.
The c++ version of your example would be, if I understood your code correctly, to take an std::vector as an constructor parameter, copy it to an private field and sort it.
It actually does not mean that. The courts cannot ignore an Act of Parliament even if it conflicts with the Human Rigths Act but can o ly give an declaration of incombability which they have done.
Or to go on to the next sprint with the same task. But here lies the problem in many cases. The sprint is taken not as a time box but as a deadline. A sprint should meen: "You can work 2 weeks, 5 days a week, 8 hours a day on this. Then you stop to think."