2013-08-03 18 views
71

क्या हास्केल में एक मॉड्यूल लिखना संभव है, जो दृश्य के अंदर सब कुछ निर्यात करने के अलावा मॉड्यूल को दोबारा निर्यात करता है?अतिरिक्त आयातित मॉड्यूल के साथ हास्केल निर्यात वर्तमान मॉड्यूल

चलें मॉड्यूल को अपनाने पर विचार:

module Test where 
import A 

f x = x 

इस मॉड्यूल सब कुछ अंदर परिभाषित निर्यात करता है, तो यह f निर्यात करता है, लेकिन यह नहीं है फिर से निर्यात के लिए कुछ भी A से आयात किया।

दूसरी ओर, मैं मॉड्यूल A फिर से निर्यात करने के लिए चाहते हैं:

module Test (
    module A, 
    f 
) where 
import A 

f x = x 

वहाँ फिर से निर्यात के लिए एक रास्ता A और निर्यात सब कुछTest में परिभाषित स्पष्ट रूप से हर लिखने के लिए जरूरत के बिना है समारोह Test के भीतर परिभाषित किया गया है?

उत्तर

107

वहाँ एक सरल उपाय है, बस मॉड्यूल से मॉड्यूल निर्यात:

module Test 
    (module Test 
    , module A 
    ) where 

import Prelude() 
import A 
f x = x 
+1

+1 तो, इतना आसान! –

+0

एक्सप्लॉयटेड [यहां] (https://github.com/ndmitchell/tagsoup/commit/1f1fff1e9ce4bd3233a2ef9607287b5018b516a7#diff-430b750c0b6fd0e9461c82565a1345dcR8)। – PyRulez

+0

इसके अलावा, यह अंतर्दृष्टि क्यों है कि यह क्यों काम करता है? (कोई दस्तावेज?) – PyRulez

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