@ has joined the channel
data Term = V Char | Abs (Term, Term) | App (Term, Term) --replaceは replace :: Term -> Term -> Term -> Term replace (V x) s r = case r of (V y) -> if x == y then s else (V y) Abs((V y), t) -> Abs(V y, (replace (V x) s t)) App(Abs(V y,t),u) -> App(Abs((V y),(replace (V x) s t)), replace (V x) s u)
map (read . lines)
ではなく、 (map read) . lines
となります。lines
になります。lines
の出力結果を、 map read
に入力する関数」を表しています。map read
は、入力されたリストの各々に、`read` 関数を適用したリストを返します。-threaded
や -eventlog
などのghcオプションをコマンドラインから与える方法はありますでしょうか?やはり.cabalファイルに書き込むべきですかね?--PROG-options=OPTS give extra options to PROG
とhelpにあったのでghcなら--ghc-optionsになりそうですね(before,rest) = ...
の行と after = ...
の行、 newChar = ...
の行の行頭をそろえてください。class Writable a where write :: Handle -> a -> IO ()
Writable
と Writer
は違う名前なのですが一見同じに見えてしまうのでhPutStrLn
を抽象化するというのはWritable
で抽象化していたものを ByteString
で具象化することを頭の中にいれながら進めていくことにします。答えてくださった皆さん、ありがとうございました。ここに質問して良かったです。4.12.0.0
だと思うのですが、archlinuxでは 4.14.0.0
になっているようなのです。4.14.0.0
を指定している)