2013-02-15 50 views
1

我該怎麼做?將Text.Pandoc.writers打印到ghci中:No Show instance

在ghci下打印格式和作者的關聯列表。
doc

writers :: [(String, Writer)] 
Association list of formats and writers. 

什麼都試過

zurgl>>>import Text.Pandoc as P 
zurgl>>>P.writers 

<interactive>:20:1: 
    No instance for (Show (WriterOptions -> Pandoc -> [Char])) 
     arising from a use of `print' 
    Possible fix: 
     add an instance declaration for 
     (Show (WriterOptions -> Pandoc -> [Char])) 
    In a stmt of an interactive GHCi command: print it 

我預計會自動導入相應的顯示實例,但似乎並非如此。我必須承認我沒有任何線索如何定義一個實例聲明(Show(WriterOptions - > Pandoc - > [Char])。作爲解決方法,我試圖導入Pandoc庫的附加模塊,但還是沒有顯示實例可用。

話應該我自己定義這個實例呢?
如果是的話,你有什麼祕訣與我分享來完成這個任務。
如果我不應該有什麼問題?

在此先感謝您的幫助。


編輯

好吧,我想我看到了我的missunderstanding:

這樣做:

zurgl>>>map (\x-> fst x) P.writers 
["native","json","html","html5","html+lhs","html5+lhs","s5","slidy","slideous","dzslides","docbook","opendocument","latex","latex+lhs","beamer","beamer+lhs","context","texinfo","man","markdown","markdown+lhs","plain","rst","rst+lhs","mediawiki","textile","rtf","org","asciidoc"] 

我認爲這毫無SENS儘量展示第二東西在我的元組。它就像一個功能,然後我們不能顯示它。

我想這應該是問題。

+0

什麼是你想實現?這是非常普遍的有**沒有**顯示功能的實例,即。這同樣適用於'Text.Pandoc.writers'。將它們轉換爲字符串表示沒有多大意義。 – 2013-02-15 14:44:49

+0

如果你回答你自己的問題,我們鼓勵你寫一個答案並接受它,所以任何後來發現這個問題的人都可以很容易地看到你是如何解決這個問題的。 – 2013-02-15 14:48:05

+0

@David:在開始時,我想遍歷作者列表以便有一種動態使用它的方法,然後我基本上開始將它打印到ghci中,並且這樣處理是一個非常糟糕的主意,最後,我唯一能做到的,就是展示我該如何頭暈目眩:s。 – zurgl 2013-02-15 14:57:01

回答

2

我試圖做的沒有意義,因爲元組包含兩種不同的類型。
第一個是特定作者的標識符(字符串類型),第二個是作者本身(然後是函數)。當然,如果我嘗試打印所有這些文件,它將失敗,因爲no顯示功能的實例。

然後檢索可用的作家的Pandoc列表(與目標動態調用相應的功能),我們只需要檢索標識的列表,如:

zurgl>>>map fst P.writers 
["native","json","html","html5","html+lhs","html5+lhs","s5","slidy","slideous","dzslides","docbook","opendocument","latex","latex+lhs","beamer","beamer+lhs","context","texinfo","man","markdown","markdown+lhs","plain","rst","rst+lhs","mediawiki","textile","rtf","org","asciidoc"] 
+3

你可以把它寫成'map fst P.writers'。函數是haskell中的函數。您不需要額外的語法來將函數變成函數。 – Carl 2013-02-15 17:59:49

+0

你說得對,爲了學習的目的,我習慣於總是使用這種符號,結果就是幾乎忘記了你所說的。 TKS – zurgl 2013-02-15 21:14:05