Functor (fonksiyonel programlama) - Functor (functional programming)

Gelen fonksiyonel programlama , bir funktor bir olan tasarım deseni esinlenerek kategori teorisinden tanımı bir olanak, genel türü bir uygulama fonksiyonu jenerik tip yapısını değiştirmeden içini.

Bu fikir, tür sınıfı kullanılarak Haskell'de kodlanmıştır.

class Functor f where
  fmap :: (a -> b) -> f a -> f b

functor yasaları adı verilen koşullarla

fmap id = id
fmap (g . h) = (fmap g) . (fmap h)

Gelen Scala yüksek kinded tipleri kullanılır

trait Functor[F[_]] {
  def map[A,B](a: F[A])(f: A => B): F[B]
}

Bunun basit örnekleri Seçenek ve koleksiyon türleridir. İşlevler, henüz bitmemiş hesaplamalara bir işlev uygulamak için işlevsel etkilerin modellenmesinde çok faydalıdır .

İşlevler , Applicative , Monad , Comonad gibi daha karmaşık soyutlamalar için bir temel oluşturur .

Olarak C ++ , adı funktoru bir belirtmektedir işlev nesnesinin yerine bu tanımın.

Dış bağlantılar