# Writing a counter function

**Jon Fairbairn
**
Jon.Fairbairn@cl.cam.ac.uk

*Sat, 29 Jun 2002 18:03:01 +0100*

Shlomi Fish wrote:
>* No. But I want to generate an irregular series, which I determine the
*>* intervals between two consecutive numbers myself. E.g:
*>* =
*
>* let (num1, next1) =3D (counter 5)
*>* (num2, next2) =3D (next1 100)
*>* (num3, next3) =3D (next2 50) in
*>* [num1,num2,num3]
*>* =
*
>* Will have the numbers [5, 105, 155].
*
What do you mean by "determine"?
You can write =
sequence =3D iterate step_counter 0
if the interval between successive numbers is determined by
the current number, or
sequence =3D map f [1..]
if it's determined by the index in the sequence.
or =
sequence =3D map snd $ iterate step_counter (0,-7)
step_counter (a,b) =3D (a+1, f a b) =
if it depends on both.
J=F3n
-- =
J=F3n Fairbairn Jon.Fairbairn@cl.cam.ac.u=
k
31 Chalmers Road jf@cl.cam.ac.uk
Cambridge CB1 3SZ +44 1223 570179 (after 14:00 only, please!)