मैं फ्लो एपीआई से परिचित नहीं हूं।
शब्द "उठाने" श्रेणी के सिद्धांत से आता है। हस्केल या स्काला जैसी प्रोग्रामिंग भाषाओं में, एक liftफ़ंक्शन एक फ़ंक्शन लेता है A => B, और किसी तरह जादू करता है ताकि उठा हुआ फ़ंक्शन F[A] => F[B]किसी फ़नकार या मोनाड पर लागू किया जा सके F[A]।
स्काला के Seqकंटेनर का उपयोग करके एक ठोस उदाहरण : मान लें कि हमारे पास एक फ़ंक्शन def double(x: Int): Int = 2 * xऔर एक अनुक्रम है val xs = Seq(1, 2, 3)। हम double(xs)असंगत प्रकारों के कारण नहीं हो सकते । लेकिन अगर हम एक प्राप्त करते हैं val doubleSeq = liftToSeq(double), तो हम कर सकते हैं doubleSeq(xs), जो मूल्यांकन करता है Seq(2, 4, 6)। यहाँ, के liftToSeqरूप में लागू किया जा सकता है
def liftToSeq[A, B](f: A => B): (Seq[A] => Seq[B]) =
(seq: Seq[A]) => seq.map(f)
Seq(…)निर्माता भी एक उठाने ऑपरेशन है, जो मूल्यों लिफ्टों के रूप में देखा जा सकता है 1, 2, 3एक में Seqउदाहरण है, इस प्रकार हमें इन मूल्यों के लिए सूची कपोल-कल्पना का उपयोग करने की इजाजत दी।
मोनाड्स हमें वाटरटाइट लेकिन कंपोज़ेबल इंटरफ़ेस की पेशकश करके किसी प्रकार के आंतरिक कामकाज को एनकैप्सुलेट करने की अनुमति देते हैं। एक उठा प्रतिनिधित्व का उपयोग करना एक संगणना के बारे में तर्क करना आसान बना सकता है। इस तरह के अमूर्त का उपयोग करने का मतलब यह भी है कि हम अमूर्त-दूर की बारीकियों का ज्ञान खो देते हैं, लेकिन उन्हें हुड के तहत एक कुशल कार्यान्वयन प्रदान करने के लिए आवश्यक है (एक उपयुक्त निष्पादन प्रतिनिधित्व खोजना)।