Saturday 15 September 2018 photo 4/6
|
Real world haskell на русском
※ Download: http://ofemgrogex.teddyvasya.ru/?dl&keyword=real+world+haskell+%d0%bd%d0%b0+%d1%80%d1%83%d1%81%d1%81%d0%ba%d0%be%d0%bc&charset=utf-8&source=dayviews.com2
If I write something in Java, I have somewhat more, but still not enough, as if I pass around arrays Gosling decided to let me break the type system. Вот еще темы с ответами: Здравствуйте.
Если вам нужно читать или писать данные из большого числа файлов, эта библиотека может существенно помочь. It explains most things clearly and the informal tone makes it easy to read, but the humor becomes annoying after a while.
- Do you know of a good tutorial about it?
But people do use Haskell on real projects, particularly when correctness is a high priority. As I wrote about before,. A very popular introduction to Haskell is. I have mixed feelings about that one. It explains most things clearly and the informal tone makes it easy to read, but the humor becomes annoying after a while. It also introduces some non-essential features of the language up front that could wait until later or be left out of an introductory book. As the probability of error approaches zero, the cost of development approaches infinity. You have to decide what probability of error is acceptable given the consequences of the errors. Someone writing pacemaker software would jump at the chance to reduce the probability of error so much for so little money. On a related note, see. Sometimes open source software is more reliable because it has more developers looking at it. But sometimes commercial software is more reliable because it has more users. More users means more people to report bugs, and more financial resources to fix those bugs. Popular software is tested by more people under more circumstances. Medical devices are an unusual case since the consequences of bugs are potentially dire. Having said that, clearly neither should be allowed if security is important e. As the probability of error approaches zero, the cost of development approaches infinity. However, it just happens not to be true. There are a number of compilers and operating systems with machine-checked formal proofs of correctness, such as the CompCert C compiler and the CakeML ML compiler. That particular xkcd was a rather tongue-in-cheek jab at davean, the guy who does all the infrastructure for xkcd… in Haskell. An example is but it really composes about 75% of the code they have in house. My usual recommendation is to binge through Real World Haskell and Learn You a Haskell in roughly equal measures. You can think of those 2 books as more grown-up versions of RWH and LYAH respectively. John: Sure, when we prove something correct in the software sphere it is always up to some level of abstraction. Whenever you type check you are proving free theorems about your code. If I write something in Scheme, I have very no confidence that the types will save me. If I write something in Java, I have somewhat more, but still not enough, as if I pass around arrays Gosling decided to let me break the type system. If I write something in Scala free theorems have no teeth. If I wanted to write it in Coq, I probably have to go learn French. We use quickcheck, doctest, test-framework, etc. I also grew disillusioned with them. Small changes in the code results in large changes in the scaffolding proofs. So if you like the refactor often it can be a pain. This is a consequence of the proof terms you write literally being the code you run. This set of tactical hints can survive refactorings, whereas the Agda approach implodes. The more parametric the function the stronger the free theorem I am asking the compiler to prove about it every time I compile. The nice side effect of this for me is that the code I get out of it is instantly more reusable as the lines along which parametricity required me to generalize the code is highly correlated with the kinds of places I was likely going to have to generalize later on. The number of structures that collapse down to the same thing in Haskell explode back outwards again. And for me the main selling point of Haskell is not correctness. Haskell gives the optimal performance-effort ratio. I can quickly write very simple and compact code and it usually performs very well. An interesting concept is software is valued not on the number of defects but of the value it provides. That is difficult for a lot of people involved. Also a comment about medical software, it is extremely rare that the developers can ever actually use the software they develop. I was thinking about TurboTax recently and it occurred to me that almost all Intuit employees can use at least some part of the software. While someone that writes a pharmacy dispensing system will never use any of it. That makes it very difficult for the programmers to have any deep feel for the actual end use, they rely almost 100% on clinical people describing what the software should do.
Annons