うまくいったようです。ありがとうございます! :clap:
show
でそうなりませんかねshow
じゃダメってことですよね。細かいニーズを考えたら作るしかないと思います。。。putStrLn $ show ("\n" :: Text)"\n"
show
がダメというのは @igrep さんの誤読なのでは……?show
でくるんだらできました。。自分は疲れてるかもしれない。"\n"
と "\\n"
はまったく別の文字列ですので、要件は整理したほうがいいと思いますよ。処理したいのが "\\n"
という文字列でそれを表示したいのであれば、文字列の生成時に \
を適切にエスケープすべきです。逆に、改行文字を含む文字をエスケープして画面に出したいのであれば、改行文字をエスケープする関数( show
はその一種だが、 "
で括ったりするのでエスケープ方法としては独特)を作ってそれを噛ませて表示すべきです。[Word8]
経由しない方がパフォーマンス的にはいいっちゃいいですけどstreamMap
の実装がおかしいと思いますfromIntegral (word32 bytestring) :: Int32
Couldn't match type ‘(xs ++ ys) ++ zs’ with ‘xs ++ (ys ++ zs)’
xs ++ ys ++ zs
という箇所に、( xs ++ (ys ++ zs)
のように)明示的に括弧を加えないで型チェックを通すことはできるでしょうか?式を変えないって,
xs `happend` (ys `happend` zs)にもしないという意味ですか?
happend3 :: Record xs -> Record ys -> Record zs -> Record (xs ++ ys ++ zs)
xs ++ ys ++ zs
以外の箇所は変えてもいいです。singletons
で Sing
な結合則の証明オブジェクトを作ってそれで検査器に「わからせる」前者を後者に変換する関数(証明)を定義の具体的なやり方を知りたいです。