(恐らくここに限らず『ふつうのHaskellプログラミング』の多くの箇所は)内容が古いようです。
System
というモジュールは今の標準のパッケージ(base
と呼ばれています)には存在していません。
getArgs
という関数はSystem.Environment
というモジュールにあります。
つまり????のように書き換えるのが正解です。
import System.Environment
main = do args <- getArgs
putStrLn $ unwords args
追記
依然として同様のエラーが発生するようであれば、「Use -v to see a list of the files searched for.」とエラーメッセージに書いてあるとおり、次のように実行してみてください。
bash
1# ハイフン2つの **後に** -v オプションを着けるのに注意!
2stack ghc -- -v echo.hs
下記のような出力から、GHCが管理しているパッケージがどこにインストールされているかわかるはずです。
...
loading package database C:\Users\igrep\AppData\Local\Programs\stack\x86_64-windows\ghc-8.2.2\lib\package.conf.d
loading package database S:\sr\snapshots\8a26ed14\pkgdb
loading package database S:\sr\global-project.stack-work\install\c1f464f3\pkgdb
...
もしここに出てきたいずれかのパスに日本語が含まれている場合、特によくある、
「C:\Users<ユーザー名>...」の<ユーザー名>の箇所に含まれる場合、
https://teratail.com/questions/96307 と同様に日本語パスの問題にハマっている可能性が高いです。
その場合、手前味噌で恐縮ですが Haskellらしさって?「型」と「関数」の基本を解説!【第二言語としてのHaskell】の「Windowsのユーザー名が日本語になっていると失敗する」の節を参考に、
** LOCALAPPDATA
を書き換えたり、日本語じゃない名前のユーザーを作るといった対応**をした上で、
**再度stack setup
**してGHCをインストールし直してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/12 11:07
2018/04/12 11:39
2018/04/12 16:20