レンズを試したかったのですが、Monocleライブラリは、私のnoobishの視点から見れば、それらの派手なボイラープレートなしのものすべてにぴったりでした。@Lenses
残念ながら、私は初心者のための学習教材がほとんどないことを知っています(私はScalazのバニラScalaのFPの基礎を知っています)。公式チュートリアルでは、簡単な例(および/またはその結果)と、非常に複雑なScalazライブラリのミックスが欠けています。 Mapへのアクセスのような簡単な作業は、最初のページでカバーされると想定します。私はat
とindex
を見Monocleでマップを変更する
@Lenses case class House(presentsDelivered: Int)
type Houses = Map[(Int, Int), House]
@Lenses case class Town(houses: Houses)
@Lenses case class Santa(x: Int, y: Int)
@Lenses case class World(santa: Santa, town: Town)
が、ない簡単な例(applyOptional
とのちょうどいくつかの奇妙な[私のための魔法]答えは決まり文句を必要としないもの):
は、私は次のスニペットを持っています。私はhouses
の地図をTown
に更新したいと思っています。
(World.town ^|-> Town.houses ^|-> index((x, y)) ^|-> House.presentsDelivered)
.modify { _ + 1 }(world)
文法的に間違っているが、私はそれは私が(指定x, y
座標にHouse
のpresentsDelivered
を変更)やりたいことは明白だと思う:私はこの精神で何かをしようとしていました。だから私の質問は、index
の部分を変更しての部分にアクセスするには?
ヘルプ、手がかり、または教師に優しい学習教材のヒントを歓迎します。
ドキュメントの不足で申し訳ありませんが、私たちはゆっくりと作業しています。一眼レフにポップアップしたり、ここで質問をしたり、ギブスで質問したりしてください。 –