2016-05-18 13 views
5

विपक्ष (::) ऑपरेटर 1 का एक मूलभूत हिस्सा है) OCaml और इसी तरह की भाषाओं में पुनरावर्ती सूची कार्यों लिखने, और सूची में मिलान 2) पैटर्न।कारण का विपक्ष कहां है (:) :) ऑपरेटर?

Reason # let myList = [2, 3, 4]; 
let myList : list int = [2, 3, 4] 
Reason # 1 :: myList; 
Error: Syntax error 

वहाँ विपक्ष ऑपरेटर के लिए एक स्थानापन्न है: हालांकि, मैं कारण के विपक्ष के विषय में दस्तावेज में कुछ भी नहीं मिल सकता है, और आरईपीएल में, यह एक त्रुटि फेंकता है?

OCaml:

+0

कारण क्या है? मैंने इसके बारे में नहीं सुना है, और Google पर कुछ भी नहीं मिला। –

+0

http://facebook.github.io/reason/ – jayelm

+0

टीआईएल। धन्यवाद! मुझे भाषा के बारे में एक टैग विकी देखना अच्छा लगेगा। –

उत्तर

9

आह, यह कारण के list of primitives में "अपरिवर्तनीय सूची संलग्न" ऑपरेटर के रूप एलियास है

1 :: 2 :: myList 
1 :: 2 :: [3, 4, 5] 

कारण:

[1, 2, ...myList] 
[1, 2, ...[3, 4, 5]] 

अजीब तरह, कम से कम में वर्तमान संस्करण (0.0.6) तुम दोनों वाक्यविन्यास का उपयोग कर सकते हैं जब पैटर्न मिलान:

let head = fun lst => switch lst { 
    | [] => failwith "Empty list" 
    | [hd, ...tl] => hd 
}; 

let head = fun lst => switch lst { 
    | [] => failwith "Empty list" 
    | hd::tl => hd 
}; 
संबंधित मुद्दे