scalaz में, Function1Ops
में endo
समारोह इस तरह से कार्यान्वित किया जाता है:समझ में नहीं आता scalaz एंडो समारोह
def endo(implicit ev: R =:= T): Endo[T] =
Endo.endo(t => ev(self(t)))
मैं क्यों Endo.endo
समारोह के शरीर में ही नहीं, बस स्वयं लेने उत्सुक हूँ ... Endo.endo(self)
के रूप में, जो Endo.endo(t=> ev(self(t)))
के समान व्यवहार करता है।
यहां मेरा नकल कार्यान्वयन है और मुझे दोनों के बीच कोई अंतर नहीं दिखता है। क्या मैं कुछ भुल गया?
def endo[R, T](f: R => T)(implicit ev: T =:= R) = (x: R)=> ev(f(x))
def endo2[R, T](f: R => T)(implicit ev: T =:= R) = f
इसके अलावा, पहला कार्यान्वयन रनटाइम पर कुछ ओवरहेड नहीं जोड़ता है?
मेरा मानना है कि इस तरह के प्रश्न पूछने का सबसे अच्छा स्थान मेलिंग सूची है: https://groups.google.com/forum/?fromgroups#!forum/scalaz। #[email protected] इस तरह के प्रश्नों को उठाने के लिए भी एक सही जगह है। आप github repo को केवल एक पुल अनुरोध भेज सकते हैं: https://github.com/scalaz/scalaz। – folone