# Notes (OFVB 01/31): Starting Off

# Questions

## 1

- `- : int = 17`
- `- : int = 11`
- `- : int = 1
`, this shows`

/` has left precedence - `- : bool = true`
- `- : bool = false
`,`

<>` is “not equal”, which is super confusing notation. - `- : bool = true`
- `- : bool = false`
- `- : bool = false`
- `- : char = ‘%’`
- error, because
`(+)`

has type `- : int -> int -> int =`

## 2

`mod`

has higher precedence than `+`

## 3

evaluates to `11`

, spaces don’t matter

## 4

`max_int + 1`

is `min_int`

, and `min_int - 1`

is `max_int`

## 5

`Exception: Division_by_zero`

## 6

`mod`

is just remainder after integer division, with the negative sign following the dividend (the first arg).

## 7

Because although there is some structural analogy between `{true, false, &&, ||}`

and `{1, 0, *, +}`

, the former is closed and the latter is not. E.g. `true || true = true`

, but `1 + 1 = 2`

. The values `1`

and `0`

live in a bigger space of values, i.e. the integers. We use types to restrict the space of possible values in our code, so that if we accidentally call a function expecting an integer with a boolean argument, we find out our mistake at compile-time rather than at run-time.

## 8

`'p' < 'q'`

is `true`

, because `p`

comes before `q`

in the alphabet. I look forward to learning how and where OCaml defines the `char`

ordering.