Birbirini içe aktaran iki modül var. Haskell, özyinelemeli modülleri desteklemiyor. Peki, veri tiplerimi ihtiyaç duymadan dairesel modül sistemine nasıl yazabilirim. . Burada Haskell özyinelemeli/dairesel modül tanımları?
benim Character.hsmodule Character where
import ItemSystem
data Character = Character { name :: String, items :: [Item] }
bir buraya ItemSystem.hs
module Item where
import Character
data ItemEffect = CharacterEffect (Character -> Character)
| ItemEffect (Item -> Item)
data Item = Item { name :: String, weight :: Int, effect :: ItemEffect }
GÜNCELLEME olduğu: Bir modül :(içine benim bütün veri tiplerini yazacak
tek bir modül –
@AdamWagner ItemSystem sokabilirsin basit değildir. –
Not GHC * yaptığı * desteği [bazı karşılıklı özyinelemeli modüller] (http://www.haskell.org/haskellwiki/Mutually_recursive_modules). Gerçi, gidiş almak için bir '.hs-boot' modülünü ihtiyaç arada – ehird