タグ

ブックマーク / qiita.com/goldarn_ring (2)

  • Freeモナドの合成 - Qiita

    TL;DR Freeモナドの合成はCoproductという型とInjectという型クラスを使うとできるよ! 詳しくはコードを見てね! https://github.com/goldarn-ring/how-to-compose-free-monad すごーい!君はDSLが得意なフレンズなんだね! 突然ですが、Freeモナドって便利ですよね! えっ、ご存知ではない? DSLを簡単に作れる便利なモナドですよ! 詳しくはこちら: Freeモナドって何なのさっ!? - capriccioso String Creating(Object something){ return My.Expression(something); } そろそろFreeモナドに関して一言いっとくか - fumievalの日記 DSLによるコードと、DSLの各命令の処理を切り離すことで、モック化とかDIとかが簡単にできるの

    Freeモナドの合成 - Qiita
  • PureScriptのガード節とwhere

    ご存知の通り(?)、PureScriptはHaskell風の構文を持ったAltJSです。しかし、あくまでHaskell「風」であるため、パッと見た限りでは全く同じに見える構文でも実際に書いてみると思わぬ違いに遭遇することがあります。 ガード節とwhereの組み合わせ たとえばHaskellで書かれたこんなコードがあります。 (Wandboxで実行) 若干わざとらしいコードですが、ガード節にまたがるwhereで定義した変数を見て、ガード節を使ってその値によって分岐をしています。 compareWith10 :: Int -> String compareWith10 n | c == LT = show n <> "は10より小さいです。" | c == EQ = show n <> "は10です。" | c == GT = show n <> "は10より大きいです。" | otherwi

    PureScriptのガード節とwhere
    igrep
    igrep 2018/10/21
    引数でのパターンマッチから類推すると、個人的にはPureScriptの方が自然な挙動に見えなくもない
  • 1