Flow API'sine aşina değilim.
“Kaldırma” terimi kategori teorisinden gelir. Haskell veya Scala gibi programlama dillerinde, bir liftişlev bir işlevi alır A => Bve kaldırılan işlevin F[A] => F[B]bir functor'a veya monad'a uygulanabilmesi için bir şekilde sihir yapar F[A].
Scala'nın Seqkabını kullanan somut bir örnek : Bir fonksiyonumuz def double(x: Int): Int = 2 * xve bir dizimiz olduğunu varsayın val xs = Seq(1, 2, 3). double(xs)Uyumsuz tipler nedeniyle yapamayız . Ama bir elde val doubleSeq = liftToSeq(double)edersek, yapabiliriz doubleSeq(xs), ki bunu değerlendirir Seq(2, 4, 6). Burada, liftToSeqolarak uygulanabilir
def liftToSeq[A, B](f: A => B): (Seq[A] => Seq[B]) =
(seq: Seq[A]) => seq.map(f)
Seq(…)Yapıcı da değerlerini kaldırır bir kaldırma operasyonu, olarak görülebilir 1, 2, 3bir içine Seqböylece bize bu değerler için liste soyut kullanmak için izin Örneğin.
Monadlar, su geçirmez, ancak birleştirilebilir bir arayüz sunarak bir tür iç işi kapsüle etmemizi sağlar. Kaldırılmış bir gösterim kullanmak bir hesaplama hakkında akıl yürütmeyi kolaylaştırabilir. Bu tür soyutlamaların kullanılması, aynı zamanda soyutlanmış özellikler hakkında bilgimizi kaybettiğimiz anlamına gelir, ancak başlık altında etkili bir uygulama sağlamak için bunlara ihtiyaç vardır (uygun bir yürütme temsili bulmak).