2017-06-14 81 views
1

我做了一些關於有色Petri網的大學評估研究,我需要在Haskell中實現它們。我使用this文件作爲開始。Haskell派生顯示錯誤

當我試圖導入此模塊中哈斯克爾:

module SimpleHCPN where 

import Data.List 
import System.Random 

data Net marking = Net {trans :: [Transition marking]} 
        deriving (Show) 
data Transition marking = Transition { name :: String 
            , action :: marking -> [marking] 
            } 
          deriving (Show) 

我收到以下錯誤:

SimpleHCPN.hs:11:37: error: 
    * No instance for (Show (marking -> [marking])) 
     arising from the second field of `Transition' 
      (type `marking -> [marking]') 
     (maybe you haven't applied a function to enough arguments?) 
     Possible fix: 
     use a standalone 'deriving instance' declaration, 
      so you can specify the instance context yourself 
    * When deriving the instance for (Show (Transition marking)) 

我仍然在Haskell一個新手,幫助那麼一點點將不勝感激。

謝謝, 丹尼斯

+0

更多相關問題:[1](https://stackoverflow.com/q/15823732/791604),[2](https://stackoverflow.com/q/15015698/791604),[3](https ://stackoverflow.com/q/10551210/791604)。 –

回答

2

actionmarking -> [marking]類型的,並且不存在類型類Show爲函數的實例。

對於函數,您可以輸入Text.Show.Functions爲類型實例Show,但我不知道,如果它顯示任何函數有用或只有"Function"

+0

right,thanks :-) –

+0

如果域很小,[Data.Universe.Instances.Show](http://hackage.haskell.org/package/universe-reverse-instances-1.0/docs/src/Data- Universe-Instances-Show.html)是另一種選擇。 –