3

エラーが発生しやすいと思われるパターンを示す最初の使用を見つけました。Shake

    contents <- readFileLines $ out -<.> "txt"
    need contents
    cmd "tar -cf" [out] contents

それらを読んで参照するneed contentsときになぜ必要なのですか?これは、要求を避けることができるようにするためですか?readFileLinescmdApplicativeDo

4

1 に答える 1

2

混乱の一部は、のタイプ/セマンティクスである可能性があると思いますcontents。ファイルout -<.> "txt"にはファイル名のリストが含まれているため、ファイル名contentsのリストです。need contentsファイル自体を作成して依存する必要がある場合は、ファイル名を使用してファイルを指定します。contentsに渡すとき、ファイルのクエリに使用するcmdファイル名を渡します。tar

したがって、重要な点はreadFileLines、問題のファイルを読み取らず、別のファイルからファイル名のみを読み取ることです。needファイルの使用に問題がないことを確認するためにを使用する必要があり、実際にcmd. 3 つの行を別の方法で見ると、次のようになります。

  1. どのファイルを操作したいですか?
  2. これらのファイルの準備が整っていることを確認してください。
  3. それらのファイルを使用します。

それは理にかなっていますか?との関係はありませんApplicativeDo-その存在は私たちをまったく助けません.

于 2016-02-29T19:40:12.020 に答える