मुझे लगता है कि हैसेल में एफ # के पाइप फॉरवर्ड ऑपरेटर ( |>
) बनाम ( और ) चाहिए ।
// pipe operator example in haskell
factorial :: (Eq a, Num a) => a -> a
factorial x =
case x of
1 -> 1
_ -> x * factorial (x-1)
// terminal
ghic >> 5 & factorial & show
यदि आपको पसंद नहीं है ( &
) ऑपरेटर, तो आप इसे F # या Elixir की तरह कस्टम कर सकते हैं:
(|>) :: a -> (a -> b) -> b
(|>) x f = f x
infixl 1 |>
ghci>> 5 |> factorial |> show
क्यों infixl 1 |>
? डेटा-फ़ंक्शन (और) में डॉक्टर देखें
infixl = infix + बाईं सहक्रियाशीलता
infixr = infix + समरूपता
(।)
( .
) का अर्थ है कार्य रचना। इसका अर्थ है (fg) (x) = f (g (x)) गणित में।
foo = negate . (*3)
// ouput -3
ghci>> foo 1
// ouput -15
ghci>> foo 5
यह बराबर है
// (1)
foo x = negate (x * 3)
या
// (2)
foo x = negate $ x * 3
( $
) ऑपरेटर को डेटा-फंक्शन ($) में भी निर्धारित किया जाता है ।
( .
) बनाने Hight Order Function
या बनाने के लिए प्रयोग किया जाता है closure in js
। उदाहरण देखें:
// (1) use lamda expression to create a Hight Order Function
ghci> map (\x -> negate (abs x)) [5,-3,-6,7,-3,2,-19,24]
[-5,-3,-6,-7,-3,-2,-19,-24]
// (2) use . operator to create a Hight Order Function
ghci> map (negate . abs) [5,-3,-6,7,-3,2,-19,24]
[-5,-3,-6,-7,-3,-2,-19,-24]
वाह, कम (कोड) बेहतर है।
तुलना |>
और.
ghci> 5 |> factorial |> show
// equals
ghci> (show . factorial) 5
// equals
ghci> show . factorial $ 5
यह left —> right
और के बीच का अंतर है right —> left
। ⊙﹏⊙ |||
मानवीकरण
|>
और &
से बेहतर है.
इसलिये
ghci> sum (replicate 5 (max 6.7 8.9))
// equals
ghci> 8.9 & max 6.7 & replicate 5 & sum
// equals
ghci> 8.9 |> max 6.7 |> replicate 5 |> sum
// equals
ghci> (sum . replicate 5 . max 6.7) 8.9
// equals
ghci> sum . replicate 5 . max 6.7 $ 8.9
ऑब्जेक्ट ओरिएंटेड भाषा में कार्यात्मक प्रोग्रामिंग कैसे करें?
कृपया http://reactivex.io/ पर जाएं
आईटी समर्थन :
- जावा: RxJava
- जावास्क्रिप्ट: आरएक्सजेएस
- C #: Rx.NET
- C # (एकता): UniRx
- स्काला: RxScala
- क्लोजर: RxClojure
- C ++: RxCpp
- Lua: RxLua
- रूबी: Rx.rb
- अजगर: आरएक्सपीवाई
- जाओ: RxGo
- Groovy: RxGroovy
- JRuby: RxJRuby
- कोटलिन: RxKotlin
- स्विफ्ट: RxSwift
- PHP: RxPHP
- अमृत: फिर से
- डार्ट: आरएक्सडार्ट
&
हास्केल है|>
। इस धागे में गहराई से दफन हो गया और मुझे कुछ दिनों के लिए खोजा। मैं इसका बहुत उपयोग करता हूं, क्योंकि आप स्वाभाविक रूप से अपने कोड का पालन करने के लिए बाएं से दाएं पढ़ते हैं।