2012-04-17 13 views
5

मैं कुछ इस तरह करना चाहते हैं:एसएमएल में बाध्यकारी के भीतर पारस्परिक रूप से पुनरावर्ती कार्यों को कैसे लिखना है?

fun f() = 
    let 
     fun a() = b() 
    and 
     fun b() = a() 
    in 
    () 
    end 

जहां ए और बी समझदार परस्पर पुनरावर्ती कार्य हैं। हालांकि, यह देता है:

Error: syntax error: replacing AND with SEMICOLON

क्या ऐसा करने का कोई तरीका है? एसएमएल में पारस्परिक रूप से पुनरावर्ती कार्यों के

उत्तर

8

घोषणा एक fun ... and ... ब्लॉक द्वारा चिह्नित है:

fun f() = 
  let 
    fun a() = b() 
    and b() = a() (* There is no 'fun' keyword before b() *) 
    in 
    () 
    end 
+0

दुभाषिया 'स्थानीय' पर गुस्सा आया, लेकिन देना (यानी, मेरी कोड में दूसरा मज़ा से छुटकारा पाने के साथ स्थानीय जगह) काम करने लगता है। धन्यवाद! – user1339898

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