- Learn Type:Driven Development
- Yawar Amin Kamon Ayeva
- 248字
- 2021-07-02 14:41:25
Types and values
Let's set the stage for the rest of the book with a discussion of types and values. At its core, a type is a set of values. Think of the type bool, which is what Reason calls the normal Boolean type. A bool value can be one of two different things: true or false. We say that these values inhabit (live in) the type. Anything else is an error.
This raises an interesting question: what does it mean to say? Anything else is an error' in this context? In fact, why should we care about types at all?
To answer these questions, let's think about what should happen if we try to do the operation "Bob" / 5. What does it mean to divide the string Bob by the number 5?
If you can't think of a good answer, well neither can anyone else. It's kind of a meaningless question. It's like asking, how does the color green taste? (Although this may be a meaningful question for synesthetic people.)
Anyway, this is the simplest answer to why we care about types – to avoid having to deal with meaningless questions. To rule out meaningless operations, we simply make them type errors in the programs that execute the code. In other words, we get our compilers and interpreters to slot all our values into distinct types, or errors if any operations can't be meaningfully performed for the given types of values.
- MySQL數據庫管理與開發(fā)實踐教程 (清華電腦學堂)
- C程序設計案例教程
- 零基礎學Python數據分析(升級版)
- 編程數學
- 軟件測試技術指南
- Android開發(fā)案例教程與項目實戰(zhàn)(在線實驗+在線自測)
- Raspberry Pi Home Automation with Arduino(Second Edition)
- 單片機C語言程序設計實訓100例
- Windows Phone 7.5:Building Location-aware Applications
- Solr Cookbook(Third Edition)
- Illustrator CC平面設計實戰(zhàn)從入門到精通(視頻自學全彩版)
- Monitoring Docker
- Java Web入門很輕松(微課超值版)
- Java Web應用開發(fā)
- Learning Gerrit Code Review