<p>I want to create a list of integers from 1 to <code>n</code>. I can do this in Python using <code>range(1, n+1)</code>, and in Haskell using: <code>take n (iterate (1+) 1)</code>.</p>
<p>What is the right OCaml idiom for this?</p>

Here you go:
```
```
let rec range i j = 
  if i > j then [] 
  else i :: range (i+1) j
```
```
Note that this is not tail-recursive.  Modern Python versions even have a lazy range.