Ana Sayfa

Seçici Uygulamalı Functor'lar: Eksik Teorik Temelin Keşfi

1 dk okuma

Selective Applicative Functor'lar, fonksiyonel programlamada önemli bir yere sahip olsalar da, teorik temelleri uzun süredir eksikti. 2019'da Andrey Mokhov ve ekibi tarafından tanıtılan bu yapı, select fonksiyonu aracılığıyla belirli durumlar arasında seçim yapma yeteneği sunar. Ancak, monoidal tensörler gibi bilindik teorik analiz araçları select'e uygulanamadığı için, bu functor'ların gerçek doğası ve diğer cebirsel yapılarla ilişkisi anlaşılamamıştı. Bu durum, Selective Applicative Functor'ların neyi temsil ettiği konusunda daha derin bir açıklama ihtiyacını doğurmuştu.

Makale, bu boşluğu doldurarak Selective Applicative Functor'ların aslında "özel belirlenmiş seçim" (exclusive determined choice) kavramını kodlamak istediğini öne sürüyor. Değerlendirme sırasında önceki sonuçlara dayanarak sonlu sayıda önceden belirlenmiş durum dalı arasında seçim yapabilme yetenekleri, onları programlama dilleri için bir Soyut Sözdizimi Ağacı (AST) şekline benzetiyor. Bu yeni bakış açısı, düz functor'lar yerine "oklar" (composable profunctors) kullanarak bu yapıları daha iyi anlamamızı sağlıyor.

Selective Applicative Functor'lar, dinamik kontrol akışını kodlayan Monad'lardan ve zaman oku olmayan Applicative Functor'lardan farklı bir kontrol akışı mekanizması sunar. Monad'lar, >>= operatörü ile dinamik olarak bir sonraki eylemi belirlerken, Applicative Functor'lar yapıları gereği tersine çalıştırılabilir efektlere sahiptir. Selective Applicative Functor'lar ise Alternative sınıfının sunduğu "belirsiz seçim" (nondeterministic choice) ile de ilişkilendirilebilir, ancak kendi içinde belirlenmiş bir seçim mantığı barındırır. Bu keşif, fonksiyonel programlama paradigmaları içindeki kontrol akışı yapılarını daha net anlamamızı sağlıyor.

İçgörü

Fonksiyonel programlamadaki karmaşık kontrol akışı yapıları olan selective applicative functor'ların teorik temeli, oklar (composable profunctors) aracılığıyla açıklığa kavuşturulmuştur.

Kaynak