Haskell ส่งออกโมดูลปัจจุบันพร้อมโมดูลที่นำเข้าเพิ่มเติม


96

เป็นไปได้ไหมที่จะเขียนโมดูลใน Haskell ซึ่งจะส่งออกโมดูลอีกครั้งนอกเหนือจากการส่งออกทุกสิ่งที่มองเห็นภายใน

ให้พิจารณาโมดูลต่อไปนี้:

module Test where
import A

f x = x

ทุกอย่างนี้การส่งออกของโมดูลที่กำหนดไว้ภายในเพื่อการส่งออกแต่ไม่ได้การส่งออกนำเข้ามาจากอะไรfA

ในทางกลับกันหากฉันต้องการส่งออกโมดูลอีกครั้งA:

module Test (
    module A,
    f
) where
import A

f x = x

มีวิธีในการรีพอร์ตAและเอ็กซ์พอร์ตทุกสิ่งที่กำหนดไว้Testโดยไม่จำเป็นต้องเขียนทุกฟังก์ชันที่กำหนดไว้ภายในอย่างชัดเจนTestหรือไม่

คำตอบ:


139

มีวิธีง่ายๆเพียงแค่ส่งออกโมดูลจากโมดูล:

module Test
    ( module Test
    , module A
    ) where

import Prelude()
import A
f x = x

exploited ที่นี่
PyRulez

นอกจากนี้ข้อมูลเชิงลึกเกี่ยวกับสาเหตุที่ได้ผล? (เอกสารใด ๆ )
PyRulez

1
@PyRulez The Haskell Report เป็นแหล่งข้อมูลที่ชัดเจน: haskell.org/onlinereport/haskell2010/…
Thomas M. DuBuisson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.