2019年1月7日のブックマーク (3件)

  • トーラス上のライフゲームを、List Zipperを使用して実装してみた - Qiita

    はじめに この記事は、「コモナドを使った抽象化の威力をライフゲームで試してみた」で言及されている「トーラス上のList Zipper」を実装してみました、という記事です。Comonadとして実装したList Zipperを使用してライフゲームを実装し、メモリ使用量が増加しないことを確認しました。 トーラスとは 長方形の左辺と右辺、上辺と下辺がそれぞれ繋がっているような構造です。RPGの平面マップで、右端や上端へ行くとそれぞれ左端や下端から出てくるような状況を想像するとわかりやすいと思います(平たく言えばドーナツ状の構造です)。 実装のポイント List Zipperの定義(1次元) トーラス上(2次元)のList Zipperを考える前に、リング上(1次元)のList Zipperを考えてみます。 直線上のList Zipperでは、注目点はどこまでもずらすことができますが、リング上では、

    トーラス上のライフゲームを、List Zipperを使用して実装してみた - Qiita
    lotz84
    lotz84 2019/01/07
    Comonadを使ったトーラス版のライフゲーム実装!!めっちゃ嬉しい!!リング状の場合は片側だけ1要素で持っておくとすごく綺麗に書けてて勉強になる✍
  • Cooper Storage and Type-Level Haskell — Alex Drummond

    Dec 29 2018 (minor updates Jan 4 2019; type errors fixed Jan 28 2019) Haskell programmers and linguists (particularly semanticists) share many of the same tastes in eseoterica. Continuations, linear logic and category theory each have interesting applications in both domains. A recent paper by Greg Kobele brings to light another connection. Greg shows that Cooper storage — a mechanism introduced i

    lotz84
    lotz84 2019/01/07
    Cooper Storage をHaskellで実装する話。自然言語に関係ある概念っぽいけど知識がなくてよくわからない…
  • Control.Lens.Wrapped

    lotz84
    lotz84 2019/01/07
    いやぁ、alaいつか使ってみたいわぁ