Düzenleme: Soruyu biraz yeniden ifade ediyorum. Görünüşe göre biraz karışıklığa neden oldum çünkü yıkıcı teriminin OOP'de oldukça farklı bir şey için kullanıldığını fark etmedim - bir nesne yok edildiğinde çağrılan bir işlev. Fonksiyonel programlamada değişebilir durumdan kaçınırız (böylece deneriz), böylece böyle bir eşdeğer yoktur. (Soruya uygun etiketi ekledim.)
Bunun yerine, bir değeri açmak için kayıt alanına (özellikle newtype
s gibi tek değerli veri türleri için ) bazen yıkıcı veya belki de yapısökücü denildiğini gördüm . Örneğin, (Haskell'de):
newtype Wrap = Wrap { unwrap :: Int }
İşte Wrap
yapıcı ve unwrap
nedir?
Sorular:
unwrap
Fonksiyonel programlamada nasıl ararız ? Deconstructor? Yokedici? Yoksa başka bir terimle mi?- Ve açıklığa kavuşturmak gerekirse , bu / diğer terminoloji diğer işlevsel diller için de geçerli mi, yoksa sadece Haskell'de mi kullanılıyor?
- Belki de, genel olarak, işlevsel olmayan dillerde bunun için bir terminoloji var mı?
Her iki terimi de gördüm, örneğin:
... Çoğu zaman, bunlarla çalışmayı kolaylaştırmak için akıllı yapıcılar ve yıkıcılar tedarik edilir. ...
En Haskell wiki veya
... Buradaki genel tema yapıcı- dekompresör çiftlerini kaynaştırmaktır ...
En Haskell kitabu (burada muhtemelen biraz daha genel anlamda içinde pinti) veya
newtype DList a = DL { unDL :: [a] -> [a] }
UnDL işlevi, DL yapıcısını kaldıran yapısökümcümüzdür . ...
içinde Real World Haskell .