Skip to content

Commit

Permalink
Begin to explain the relationship between pattern-matching and value
Browse files Browse the repository at this point in the history
  • Loading branch information
igrep committed May 5, 2024
1 parent 1fb0977 commit 661288a
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
12 changes: 11 additions & 1 deletion assets/18.md
Original file line number Diff line number Diff line change
Expand Up @@ -955,7 +955,17 @@ ghci> formatEntry entry
```
-->

##### おまけ: パターンマッチと値の定義
##### パターンマッチと値の定義

この節はパターンマッチと直接関係ありませんが、パターンマッチやレコード型を理解する上でとても重要な話なので取り上げます。

まずは課題hoge(6?)のおまけで紹介した、レコードラベルを使ってレコード型の値を定義する方法を思い出しましょう。例は例のごとく`Entry`型です:

```haskell
ghci> categoryFirst = Entry { category = "Glasses", price = 23000 }
ghci> entry
hoge
```

hoge

Expand Down
4 changes: 2 additions & 2 deletions assets/6.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ data Entry =

こちらもわかりやすさのために改行やスペースを挟んでいますが、実際には

```
```haskell
Entry { category :: String, price :: Integer }
```

Expand Down Expand Up @@ -287,7 +287,7 @@ ghci> category freeMagazine
ここで何より注目していただきたいのは、`magazine { price = 0 }`という式は、`magazine`というレコードの値を**直接書き換えるのではなく**`magazine`を元に`price`だけが異なる**新しいレコードを作って返す**、ただそれだけしかしない、と言う点です。
その証拠として、`magazine``price`がどうなっているか確認してみましょう。

```
```haskell
ghci> price magazine
120
```
Expand Down

0 comments on commit 661288a

Please sign in to comment.