OCaml

2010-10-30 8 views
10

में जोड़े (कुंजी, मान) की सूची में हैश तालिका को कनवर्ट करना क्या हैश तालिका को ओकैमल में (कुंजी, जोड़ी) मानों की सूची में परिवर्तित करने का कोई तरीका है?OCaml

मुझे पता है कि, एक हैश तालिका ht दिया हम

BatList.of_enum (BatHashtbl.enum ht) 

बैटरी लाइब्रेरी का उपयोग कर सकते हैं कर रहा हूँ। यह तालिका को एक गणना में परिवर्तित करेगा और फिर enum को एक सूची में परिवर्तित करेगा। लेकिन मैं ऐसे समाधान की तलाश में हूं जो बैटरी लाइब्रेरी का उपयोग न करे। standard OCaml Hashtbl Module में जोड़े को इस उद्देश्य को प्राप्त करने के लिए सूची या उसके कार्यों को संयोजित करने का एक तरीका के रूप में निकालने का एक तरीका प्रतीत नहीं होता है। कोई सुझाव?

+1

वैसे, मुझे लगता है कि सवाल जहां देखा में कह (जैसा कि आप यहाँ किया था) बहुत अच्छा अभ्यास है: यह मदद सही पर कोई उत्तर देते हैं स्तर, दिखाएं कि आपने कोशिश की है, और मुझे Hashtbl.fold के प्रकार को देखने के लिए समय बचाया :) (कि मैं दिल से नहीं जानता, लेकिन अंगूठे के नियम के रूप में, जब इसे 'fold' कहा जाता है तो वह प्रकार है 'fold_right'') –

उत्तर

27

मानक OCaml Hashtbl वहाँ मॉड्यूल में होना प्रतीत नहीं होता है ...

couse के है!

val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c 

तो, उपयोग:

fun h -> Hashtbl.fold (fun k v acc -> (k, v) :: acc) h [] 
+0

ग्रेट! आपका बहुत बहुत धन्यवाद! – Surikator

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

  • कोई संबंधित समस्या नहीं^_^