@ 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 を指定している)