@ has joined the channel
iteratee について調べていたのですが、well-known types such as foldables, iteratees, lenses, etc.
enumerator パッケージにおける実装などについて詳しく書いているのですが肝心の enumerator が deprecated になっていました。accum して、その結果を使ってストリームを最初から流し直す、みたいなプロセスってどう書けばよいのでしょうか?-- | -- >>> P.run pa [1 .. 3] -- [(1,6),(2,6),(3,6)] pa :: Monad m => P.ProcessT m (P.Event Int) (P.Event (Int, Int)) pa = proc x -> do sum' <- P.accum 0 -< (+) <$> x end <- P.onEnd -< x sum'' <- returnA -< sum' <$ end returnA -< (,) <$> x <*> sum'' -- Event a は Applicative でないのでここでエラー
(&&&) で分岐して片方で accum すれば、必要なストリームは作れる。
pa = P.switch collect combine
where
collect = proc x -> do
lRev <- P.accum [] -< (:) <$> x
sum' <- P.accum 0 -< (+) <$> x
ed <- P.onEnd -< x
P.muted &&& returnA -< (reverse lRev, sum') <$ ed
combine (l, sum') = proc _ -> do
x <- P.blockingSource l -< P.ZeroEvent
returnA -< (, sum') <$> x
stack --local-build-path=<好きなパス> install と実行すれば、 <好きなパス> にビルドした実行ファイルが作成されます。blaze-htmlを用いて以下のようなものを生成したいのですが、どうすればよいでしょうか<p>Hello <span>World</span></p>
$ stack --resolver nightly-2018-03-18 ghci --package blaze-html > import Text.Blaze.Html5 > import Text.Blaze.Html.Renderer.String > import Data.Semigroup > :set -XOverloadedStrings > let inner = "foo" <> Text.Blaze.Html5.span "bar" <> "baz" > let html = p inner > renderHtml html "<p>foo<span>bar</span>baz</p>"
Spec.hs内に`foo :: [Int] -> Bool`という関数があった場合にはghci内でquickCheck foostack ghci --test ではダメ?stack ghci test/Spec.hsでいけました!stack ghci test/Specでは実行できなかったので他に方法があるのかと勘違いしていました。
{-# OPTIONS_HADDOCK hide, prune, ignore-exports #-}
IF PROD
{-# OPTIONS_HADDOCK hide #-}
END