2012-06-08 16 views
11

Kullanım LIFO'yu saklamak için bir şeylere ihtiyacım var. İtme ve pop hariç geçiş ve diğer işlevlere gerek yoktur.Neden scala.collection.immutable.Stack

Yığın oluşturmak için scala koleksiyonunda özel sınıf buldum. Ancak Nil eşlemesini desen eşleştirmesi ve diğer kullanışlı scala deyimlerinden yoksundur. Immutable listeler ilk bakışta iyi uyuyor, inşaat ve ekstraksiyon için cons var ve bunların hepsi LIFO'dan gerekli.

scala.collection.immutable.Stack varoluşunun ardında bir neden var mı? Neden onu kullanmayı tercih etmeliyim, faydalarını göstermek için kullanım durumları nelerdir? the API documentation itibaren

cevap

19

:

Not: Bu sınıf yalnızca tarihsel bir nedenle ve değişken yığınlarının bir analog olarak var. Değişmez bir yığın yerine listesini kullanabilirsiniz.

Ve a little more detail yılında

:

Immutable yığınları Scala programlarında nadiren kullanılmaktadır onların işlevselliği listeleri sahiplenildi çünkü: Bir değişmez yığın A push bir listede :: ve aynı olduğunu Bir yığın üzerinde bir pop, bir liste ile aynı tail ile aynıdır.

Yani sorularınızı yanıtlamak için:

  1. Evet, kendi varlığı için bir neden yok.
  2. Hayır, listelerin üzerinde tercih etmemelisiniz.