2017-02-24 14 views
5

क्यों है, मैंने सोचा कि मुझे एफ # कोड निष्पादन समझा गया है लेकिन स्पष्ट रूप से मुझे कुछ याद आ रहा है। जब मैं निम्नलिखितमेरा आवेदन शीर्ष पर नीचे

#!/usr/bin/env fsharpi 

let a = 
    System.Console.WriteLine("Function A") 

let b = 
    System.Console.WriteLine("Function B") 

let c = 
    System.Console.WriteLine("Function C") 

c 
b 
a 

चलाने मैं आउटपुट प्राप्त:

Function A 
Function B 
Function C 

तो किसी कारण से यह कार्यों को क्रियान्वित कर रहा है क्योंकि यह उन्हें बजाय फ़ंक्शन कॉल जो उलटे क्रम में कर रहे हैं में पढ़ता है।

यह क्यों है?

+5

उन कार्यों नहीं हैं। – SLaks

उत्तर

7

मुझे लगता है कि आप गलत समझ रहे हैं क्या इस लाइन का अर्थ है:

let a = 
    System.Console.WriteLine("Function A") 

यह a को System.Console.WriteLine("Function A") का परिणाम प्रदान करती है। आप इसे चलाते हैं, तो आप देखेंगे aunit के रूप में लिखा गया:

val a : unit =() 

और उस समय "समारोह ए 'पहले से ही सांत्वना देने लिखा गया था।

let a() = 
    System.Console.WriteLine("Function A") 

यह a() का उपयोग कर कहा जा सकता है:

क्या आप शायद चाहते a एक समारोह और नहीं एक मूल्य के हो रहा है। अगर आपको लगता है कि सभी को एक साथ रखा:

let a() = 
    System.Console.WriteLine("Function A") 

let b() = 
    System.Console.WriteLine("Function B") 

let c() = 
    System.Console.WriteLine("Function C") 

c() 
b() 
a() 

आप मिल जाएगा कि आप क्या उम्मीद:

Function C 
Function B 
Function A 
+1

हां, यही वह है जिसे मैं ढूंढ रहा हूं। स्पष्ट करने के लिए आपको धन्यवाद। इससे ज्यादा समझदारी होती है। –

संबंधित मुद्दे