Trabajas para una empresa de streaming de música.
Te han encargado crear una funcionalidad de listas de reproducción para tu aplicación de reproducción de música.
Escribe un prototipo de la aplicación de reproductor de música.
Para el prototipo, cada canción se representará simplemente con un número. Dado un rango de números (los identificadores de las canciones), crea una lista enlazada simple.
Dada una lista enlazada simple, deberías poder invertir la lista para reproducir las canciones en el orden inverso.
La lista enlazada es una estructura de datos fundamental en informática y se usa a menudo en la implementación de otras estructuras de datos.
El tipo más sencillo de lista enlazada es la lista enlazada simple. Eso significa que cada elemento (o «nodo») contiene datos, junto con algo que apunta al siguiente nodo de la lista.
Si quieres profundizar en las listas enlazadas, echa un vistazo a este artículo, que lo explica con unos dibujos muy claros.
Define una tupla linked-list-node.
Define una tupla linked-list y proporciona un método M: linked-list length (de sequences) para que las pruebas puedan llamar a length directamente sobre tu lista.
<linked-list> ( -- linked-list ): construye una lista vacía.>linked-list ( seq -- linked-list ): introduce cada elemento de seq en una lista nueva, en orden.linked-list>array ( linked-list -- array ): devuelve los valores, empezando por el que está arriba de la lista.list-push ( linked-list value -- linked-list ): introduce un valor en la parte superior.list-pop ( linked-list -- linked-list value ): elimina y devuelve el valor de la parte superior.list-peek ( linked-list -- value ): devuelve el valor de la parte superior sin eliminarlo.list-reverse ( linked-list -- linked-list ): devuelve una lista con los elementos en orden inverso.Lanza una clase de error list-empty desde list-pop y list-peek cuando la lista esté vacía.
Regístrate en Exercism para aprender y dominar Factor con 47 conceptos163 ejercicios y mentoría humana real, todo gratis.