As of March 2020, School of Haskell has been switched to read-only mode. Lens gets a lot of flack for having crazy type signatures. This is a whirlwind derivation of the craziest of signatures from the ground up. It might be useful as a starting point for exploring more of the lens code and seeing "through" the sophisticated types. Getting and SettingAt the simplest, a Lens is a getter and a sette
A Lens is a functional concept which solves a very common problem: how to update a complex immutable structure. This is probably the reason why Lenses are relatively well known in functional programming languages such as Haskell or Scala. However, there are far less resources available on the generalization of Lenses known as "optics". In this slides, I would like to go through a few of these opti
Join the Community Is the documentation not quite up to snuff? Did we screw something up? We're only human. Help us help you. Visit us on IRC Raise an Issue This package provides families of lenses, isomorphisms, folds, traversals, getters and setters. Costate Comonad Coalgebra is equivalent of Java's member variable update technology for Haskell @PLT_Borat on twitter The FAQ, which provides links
Swift Advent Calendar 2015 - Qiitaの20日目の記事です。 遅くなってしまいごめんなさい。 TL;DL 不変性を保ちつつ、ネストしたデータ構造に対するアクセスをLensの合成で扱える きっかけ 以前、Lens&Prism勉強会 - connpass に参加した際に興味を持ったので今回Swiftで簡易的な実装をしてみました。 to4iki/Monocle また、今回間違って説明していることなどありましたらコメント欄で教えていただけると嬉しいです! もともとはHaskellのlensパッケージが存在していて、 今回参考にしたのは、それをScalaで実装したMonocleのLensです。 (MonocleはLens以外もTraversal, Optional, Prism, Isoを提供しています) Java実装: functionaljava/Lens.java
前回の続きで、今回はPrismについて調べたのでそれについて記す。(lensパッケージ バージョン4.7に基づく) 前回書いたように、PrismはTraversalの一種であり、全体データの中の0個もしくは1個の部分データに着目する。また、Prismは「部分データから全体データを復元することができる」という、Lensにはない特徴を持つ。(そのため、Prismでは「全体」と「部分」という言い方は不適切かもしれない) >>> (Right "hoge") ^. _Right "hoge" >>> "hoge" ^. re _Right Right "hoge" この、Prismの効果を「逆転」する関数であるreがどういう仕組みになっているか気になったので、lensのマニュアルやソースコードを読んだ。 Prismの型 Prismのデータ型は以下のようになっている。 type Prism s t
Combining getters and setters for great glory This is another FP-inspired blogpost, this time about lenses. There’s a lot of literaturearound lenses, but I wanted to show some simple examples. Sometimes, you have a set of data (this could be anything, from a struct to a Core Data database, or a webservice), and you want to create a view on that data. For example, suppose you have a value of type P
Programování jako zábavná hra! Děti, ale i dospělí se mohou naučit kódovat velice přístupnou formou, která bude všechny bavit! Foto: Pixabay Základy programování Programování se může zdát jako složitá věda, ale s dnešními dostupnými nástroji se tomuto řemeslu může naučit každý. Samozřejmě záleží, jaké k tomu má kdo dispozice a kolik času je ochoten učení věnovat. Už ale dávno neplatí, že je progra
見ろ! Haskell が OOPL のようだ! さてさて、ようやく重い腰を上げて、Lens を勉強し始めましたよ。Haksell for allを見て勉強すればいいのかなと思ったんですが、解説しているパッケージが data-lens なので古いですね。 今、使うべきなのは、lens というパッケージらしいです。解説は、この README を読むのが一番だそうです。この README と Haskell for all をにらめっこしながら、Lens の getter と setter の機能を使ってみます。 背景 Haskell の代数データ型にはフィールドラベルが定義できて、これがいわゆる getter と setter の役割を果たします。Haskell for all から例を引用してみましょう。 data Point = Point { x :: Double , y :: Do
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く