8 lines
393 B
Haskell
8 lines
393 B
Haskell
recaman :: Integer -> [Integer]
|
|
recaman n = reverse (go 0 0 [])
|
|
where
|
|
go i a_n xs | i > n = xs
|
|
| (am > 0) && (not (any (am ==) xs)) = go (i + 1) am (am : xs)
|
|
| otherwise = go (i + 1) ap (ap : xs)
|
|
where am = a_n - (i + 1)
|
|
ap = a_n + (i + 1)
|