के एक साधारण समारोह मूल्य f1
लेते हैं: के रूप मेंस्पष्ट रूप से जेनेरिक फ़ंक्शन मान समान गैर-जेनेरिक से भिन्न क्यों होता है?
*bind f1*
val f1 : (unit -> unit)
FSI में
let f1 = printfn "*bind f1*"; fun() -> printfn "f1()"
f1
बांधता है और, लागू किया जा रहा, बर्ताव करता है
>() |> f1 |> f1;;
f1()
f1()
val it : unit =()
अपेक्षा के अनुरूप अब एक समान कार्य करते हैं मान, लेकिन स्पष्ट रूप से जेनेरिक f2<'a>
:
let f2<'a> = printfn "*bind f2*"; fun() -> printfn "f2()"
f2
val f2<'a> : (unit -> unit)
रूप FSI में बांधता है किसी भी *bind f2*
उत्पादन के बिना, लेकिन फिर, लागू किया जा रहा है, प्रत्येक f2
मंगलाचरण पर आउटपुट:
>() |> f2 |> f2;;
*bind f2*
f2()
*bind f2*
f2()
val it : unit =()
मेरा प्रश्न है: क्या हो सकता है ऐसी मनाई असमानता का कारण बनें?
f2 एक प्रकार समारोह (च # कल्पना में 10.2.3) है – desco
@ डेस्को: धन्यवाद, व्लादिमीर! यदि आप इसे किसी उत्तर में नहीं रखना चाहते हैं तो मुझे इसे स्वीकार करने में खुशी होगी। –