官术网_书友最值得收藏!

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.

主站蜘蛛池模板: 揭东县| 乾安县| 阿尔山市| 都兰县| 星子县| 扎鲁特旗| 博罗县| 清水河县| 双流县| 册亨县| 梨树县| 城步| 兴山县| 河曲县| 常熟市| 龙山县| 积石山| 江阴市| 拉孜县| 抚远县| 江津市| 南华县| 韶关市| 贵定县| 湾仔区| 洛川县| 休宁县| 疏勒县| 石林| 新巴尔虎左旗| 富平县| 澄迈县| 金阳县| 汉阴县| 大兴区| 凌海市| 鄂托克前旗| 青冈县| 远安县| 大关县| 尼勒克县|