Commit b63fc84 1 parent 03d55e0 commit b63fc84 Copy full SHA for b63fc84
File tree 1 file changed +13
-7
lines changed
1 file changed +13
-7
lines changed Original file line number Diff line number Diff line change @@ -753,7 +753,7 @@ greetEach = map (("Hello, " ++) . (++ "!"))
753
753
[ 1 ] : https://qiita.com/necojackarc/items/1bccc9643857d3ce7896
754
754
[ 2 ] : https://wiki.haskell.jp/Hikers%20Guide%20to%20Haskell#%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%83%95%E3%83%AA%E3%83%BC%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%81%82%E3%82%8B%E3%81%84%E3%81%AF%E6%A7%98%E3%80%85%E3%81%AA%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%81%A8%E3%81%AE%E4%BB%98%E3%81%8D%E5%90%88%E3%81%84%E6%96%B9
755
755
756
- ### ラムダ抽象や関数の引数でのパターンマッチ
756
+ ### 関数の引数でのパターンマッチ
757
757
758
758
これまで、パターンマッチを行う際は` case ` 式を使うよう説明してきました:
759
759
@@ -827,20 +827,26 @@ fib n = fib (n - 2) + fib (n - 1)
827
827
828
828
[ 3 ] : https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%9C%E3%83%8A%E3%83%83%E3%83%81%E6%95%B0#%E6%A6%82%E8%A6%81
829
829
830
- #### レコード型に対する関数の引数でのパターンマッチ
830
+ #### レコード型に対するパターンマッチ
831
831
832
- 自分で定義した型でもOK!
832
+ 今度は、レコード型の値をパターンマッチする際に使える構文を紹介します。
833
833
834
- ※ここと次のタプルの節で紹介するパターンマッチは ` case ` 式でも使えますが、特に引数でのパターンマッチで使うことが多いです。
834
+ 例として用いるレコード型は、お馴染み ` Entry ` 型です:
835
835
836
- 例えばおなじみ` Entry ` 型を使って
837
-
838
- ```
836
+ ``` haskell
839
837
data Entry =
840
838
Entry { category :: String , price :: Integer }
841
839
deriving Show
842
840
```
843
841
842
+ レコード型の値に対するパターンマッチは、 二つ方法があります。 まずはレコード型のラベルを宣言した順に従って、 各フィールドの値を変数に代入する方法です。 `Entry `型に対してこの方法を用いた場合、 次のような構文で引数を宣言します:
843
+
844
+ ```haskell
845
+ f (Entry cat pri) = {- ...ここで category が入った cat を、と price が入った pri を使う式 ... -}
846
+ ```
847
+
848
+ hoge
849
+
844
850
値コンストラクター` Entry ` の第一引数にあたる` category ` 、第二引数にあたる` price ` 、それぞれにパターンマッチできる!
845
851
846
852
```
You can’t perform that action at this time.
0 commit comments