The Bell numbers are a sequence of numbers that represent the number of ways to partition a set of `n` elements. The sequence starts with `1` for `n = 0`, and subsequent numbers can be calculated using a triangular array known as the Bell triangle.
Write a Python function `bell_number(n)` that computes the nth Bell number. The function should take an integer `n` as input and return the nth Bell number.
#### Example Usage
```python [main.nopy]
print(bell_number(0)) # Output: 1
print(bell_number(1)) # Output: 1
print(bell_number(2)) # Output: 2
print(bell_number(3)) # Output: 5
print(bell_number(4)) # Output: 15
```
#### Constraints
- The input `n` will be a non-negative integer.
- The function should handle inputs up to at least `n = 10` efficiently.