トラック
/
F#
F#
/
演習
/
レンズ使い
レンズ使い

レンズ使い

上級

説明

レンズを使って、入れ子のレコードを更新します(イミュータブルなデータを扱うプログラミング言語向け)。

入れ子になったイミュータブルなレコードのフィールドを更新するのは、なかなか面倒です。 こうした場合のコードは、構造が深くなるほど煩雑になります。 たとえば、Personの中にAddressがあり、そのAddressにStreetがあり、さらにそのStreetにNumberがあるとします。このNumberを更新するには、新しいNumberを持つStreetを新しく作り、次にその新しいStreetを持つAddressを新しく作り、最後にその新しいAddressを持つPersonを新しく作る必要があります。 もう混乱してきましたか?

この問題を解決する方法の1つが、レンズを使うことです。

レンズを使って、レコードにアクセスする関数をいくつか実装してみましょう。 テストスイートは、レンズをまったく使わないやり方にも対応しているので、別のアプローチを試すこともできます。

ヒント

  • この演習では、F#に_lenses_の機能を追加するAetherライブラリを使うことを想定しています。_lenses_を使うと、入れ子になった構造をとても簡単に読み取ったり更新したりできます。
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
F# Exercism

レンズ使いを始める準備はできましたか?

Exercismに登録すれば、18個のコンセプト148個の演習、そして本物の人間によるメンタリングとともに、F#を学んでマスターできます。すべて無料です。