1

私は何をしようとしていますか?

フォーマットとライターの関連付けリストをghciの下に印刷します。ドキュメント
を参照してください:

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インスタンスが自動的にインポートされることを期待していましたが、そうではないようです。そして、(Show(WriterOptions-> Pandoc-> [Char])のインスタンス宣言を定義する方法がわからないことを認めなければなりません。回避策として、Pandocライブラリの追加モジュールをインポートしようとしましたが、まだ利用可能なShowインスタンスはありません。

次に、このインスタンスを自分で定義する必要がありますか?
はいの場合、このタスクを完了するために私と共有するためのヒントがありますか。
私が問題をすべきではない場合はどうなりますか?

よろしくお願いします。


編集

わかりました、私は私の誤解を見たと思います:

やっている:

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"]

タプルの2番目のものを表示しようとしても意味がないと思います。関数のようなものであるため、表示できません。

私はそれが問題になるはずだと思います。

4

1 に答える 1

2

タプルには2つの異なるタイプが含まれているため、私がやろうとしたことは意味がありません。
最初のものは特定のライターの (文字列型の) 識別子であり、2 番目のものはライター自体 (そして関数) です。確かに、それらすべてを印刷しようとすると、 function の Show インスタンスがないため失敗します。

次に、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"]
于 2013-02-15T15:21:07.353 に答える