0

ファイルから読み取りたい (1 行に haskell コマンドを含む)。一行ずつ読み込んで実行し、結果を表示したい

私の次のコードは機能していません...印刷はコマンドを処理していません。表示しているだけです:

import System.IO
import Control.Monad

main = do
  fileContents <- readFile "Instructions.txt"
  mapM_ f (lines fileContents)

f line = do
    putStrLn ("Processing Instruction:" ++ line)
    print line

命令ファイルには haskell コマンドが含まれています。

4

2 に答える 2

0

解決策は非常に簡単です。行を解釈して実行する関数に変更printします。f

からコマンドを使用systemして実行するのは非常に簡単です。コードは次のようになりますSystem.Cmdghc - e

import System.IO
import System.Cmd
import Control.Monad

main = do
  fileContents <- readFile "Instructions.txt"
  mapM_ f (lines fileContents)

f line = do
  putStrLn ("Processing Instruction:" ++ line)
  system $ "ghc -e " ++ show line

エラーチェックなどを追加する必要がありますが、質問の中心ではないため、それらの部分はお任せします。

于 2013-09-08T01:21:00.973 に答える