ブックマーク / zenn.dev/funnycat (4)

  • PureScriptで日付(Date)を扱うあれやこれや

    PureScriptで日付を扱おうと思ったとき、日語の情報が見当たらなかった(日付に限った話じゃないか)ので自分の備忘録も兼ねて書いてみることにしました。 さて、PureScriptで日付を扱うためにはDate型を使うことになるかと思いますが、このDate型はPureScriptらしくガチガチに型安全な感じになっています。

    PureScriptで日付(Date)を扱うあれやこれや
    mumei-0
    mumei-0 2023/12/27
    “このDate型はPureScriptらしくガチガチに型安全な感じになっています。”
  • PureScriptでClean Architecture - Tagless Final編

    はじめに 私はこれまでいかにPureScriptでClean Architectureを実現するか模索し続けてきたわけですが、また新しい方法を考えたので紹介したいと思います。 この記事の構成 この記事は大きく3つのセクションに分かれています。 それなりに長い記事となっておりますので、目的に応じて目次から興味のあるところまで飛んでいただけたらと思います。 私がこの記事で紹介する手法にたどり着くまでの流れ 具体的にどうやってTagless FinalでClean Architectureを実現するのかの説明 この手法を用いて私が作った4層の小さなサンプルアプリケーションのコードを見る 説明しないこと 文章量が長くなりすぎるため、以下の説明は割愛させてください。 Tagless Finalについての詳細な解説(簡単に説明はします) Clean Architectureについての解説 PureSc

    PureScriptでClean Architecture - Tagless Final編
    mumei-0
    mumei-0 2023/12/27
    “「依存性の逆転」をPureScriptでどう実現するかが私の中での最大の課題で、この課題を解決するため長い長い探求の旅を続けてきたのでした。”
  • PureScriptのイータ変換を手助けするライブラリを作りました

    絶対にイータ変換したいでござる!!! 絶対にイータ変換したいでござる!!! そんな御仁(というか私)のためにイータ変換を手助けするライブラリ作りました。 動機 例えば次のようなコードがあったとしましょう。 newtype Result a = Result a fun :: String -> Int -> Boolean -> String fun a b c = a <> show b <> show c

    PureScriptのイータ変換を手助けするライブラリを作りました
    mumei-0
    mumei-0 2023/12/27
    “このライブラリでは型クラスを用いることで可変長引数に対応しています。”
  • マルチタスクはどう実現されているか?JavaScriptとPureScriptで学ぶマルチタスクの実装

    この記事はJavaScriptPureScriptでマルチタスクの仕組みがどう実現されているかを解説する記事です。 題材とするのは、PureScriptの非同期処理ライブラリAffです。 実はこのライブラリ、マルチタスクの仕組みを実現する実装のコア部分はJavaScriptで書かれています※。 したがってこの記事に出てくるコードは9割くらいはJavaScriptのコードになります。 なので「PureScriptはわからんけどJavaScriptならわかる」という方の知的好奇心も満たすことができるかもしれません。 目次から「Fiberの実行でまず行われること」にジャンプして下にスクロールしていただければ、JavaScriptのコードが多いということがわかるかと思うので気になる方はまず試しにこちらをぱっと見していただけたらと思います。 こういう話をします マルチタスクの方式の話 Fiberの

    マルチタスクはどう実現されているか?JavaScriptとPureScriptで学ぶマルチタスクの実装
    mumei-0
    mumei-0 2023/09/28
    超力作。“PureScriptのAffの実態がFiberだからです。”
  • 1