2012-06-08 19 views
11

Necesito algo para almacenar un LIFO. No es necesario atravesar ni otras funciones, excepto push y pop.Por qué usar scala.collection.immutable.Stack

Encontré una clase especial en la colección scala para crear una pila. Pero carece de objeto Nil en la coincidencia de patrones y otros modismos scala útiles. Las listas inmutables se adaptan bien a primera vista, tienen cons para la construcción y la extracción, y eso es todo lo que se necesita de LIFO.

¿Hay alguna razón detrás de scala.collection.immutable.Stack existencia? ¿Por qué preferiría usarlo? ¿Cuáles son los casos de uso para mostrar sus beneficios?

Respuesta

19

De the API documentation:

Nota: existe Esta clase sólo por la razón histórica y como un análogo de pilas mutables. En lugar de una pila inmutable, puede usar una lista .

Y en a little more detail:

pilas inmutables rara vez se utilizan en los programas de Scala porque su funcionalidad se subsume por listas: Una push en una pila inmutable es lo mismo que un :: en una lista y un pop en una pila es lo mismo que tail en una lista.

Así que para responder a sus preguntas:

  1. Sí, hay una razón para su existencia.
  2. No, no debería preferirlo a las listas.