Los primeros al final
Definir la función
1 |
rota :: Int -> [a] -> [a] |
tal que (rota n xs)
es la lista obtenida poniendo los n
primeros elementos de xs
al final de la lista. Por ejemplo,
1 2 3 |
rota 1 [3,2,5,7] == [2,5,7,3] rota 2 [3,2,5,7] == [5,7,3,2] rota 3 [3,2,5,7] == [7,3,2,5] |
Soluciones
A continuación se muestran las soluciones en Haskell y las soluciones en Python.
1 2 |
rota :: Int -> [a] -> [a] rota n xs = drop n xs ++ take n xs |
El código se encuentra en GitHub.
1 2 3 4 5 6 |
from typing import TypeVar A = TypeVar('A') def rota(n: int, xs: list[A]) -> list[A]: return xs[n:] + xs[:n] |
El código se encuentra en GitHub.
Comentarios
+ Los n
primeros elementos de la lista xs
se calcula
+ en Haskell, con take n xs
y
+ en Python, con xs[n:]
.
+ La lista xs
sin sus n
primeros elementos se calcula
+ en Haskell, con drop n xs
y
+ en Python, con xs[:n]
.