euphonictechnologies’s diary

Haskell超初心者の日記です。OCamlが好きです。

follow us in feedly

Haskell - Conduitでとってつけたにゃん

今日は

HaskellのストリームプロセッシングライブラリConduitで適当に遊びます。

GitHub - snoyberg/conduit: A streaming data library

Javaでいうところのlist.stream()ってやつです。

左から来た言葉にとってつけたにゃんをつけて右側に流すConduit

{-# LANGUAGE OverloadedStrings #-}

module Lib
    ( nyanize
    ) where

import           System.Environment
import           Conduit
import qualified Data.Conduit.Binary        as CB
import           Data.Monoid                ((<>))
import qualified Data.Text                  as Text
import qualified Data.Text.IO               as Text


nyanize :: IO ()
nyanize = do
    (filename:xs) <- getArgs
    putStrLn $ "input file: " ++ filename
    runConduitRes
        $ sourceFile filename
       .| CB.lines
       .| decodeUtf8C
       .| mapC (<> "、にゃん")
       .| mapM_C (liftIO . Text.putStrLn)

としまして、テキストファイルに語録を適当にぶちこみますと(非公式wikiの語録の見出し語を使いました)

おぉー、にゃん
今日もちえりちゃんはかわいいなぁ、にゃん
しゅんっ!、にゃん
ちょっと待ってな、にゃん
○○なのではー?、にゃん
ほいでー、にゃん
...

おぉー、ええやん。

まとめ

Conduitはいいぞ。 花京院ちえりをすこれ

www.youtube.com

ちなみに

こちらを参考にしました:

questro.jp

最近ではData.Conduit.Binaryはあんまり推奨されないらしいです。時間が流れるのは早いです。