Skip to content

Commit c380337

Browse files
committed
Introduce >>
1 parent 5eb730d commit c380337

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

assets/19.md

+8-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
### `do`記法の正体1: `do`をなくす`>>`
1111

12+
まずは、次👇のように`do`記法を使って`putStrLn`を連続して実行する関数を、`do`記法を使わずに書き換える方法を紹介します:
13+
1214
```haskell
1315
loremIpsum = do
1416
putStrLn "Lorem ipsum dolor sit amet,"
@@ -17,7 +19,7 @@ loremIpsum = do
1719
putStrLn "ut labore et dolore magna aliqua."
1820
```
1921

20-
から`do`をなくすと...
22+
結論から言いましょう。上記👆のコードから`do`をなくすと、下記👇のように書き換えられます:
2123

2224
```haskell
2325
loremIpsum =
@@ -27,14 +29,16 @@ loremIpsum =
2729
>> putStrLn "ut labore et dolore magna aliqua."
2830
```
2931

30-
1行で書くと...
32+
`do`を消した上で、最初の行を除いて各行の頭に`>>`を追加しました。`>>`は、`putStrLn ".."`のような「命令」を「繋げる」演算子です。当然、`+``*`のような、Haskellにおける他の演算子と全く同じように扱えるようになっています。
3133

32-
```
34+
従って`>>`も、次のように左辺も右辺も含めて1行で書くことができます:
35+
36+
```haskell
3337
loremIpsum =
3438
putStrLn "Lorem ipsum dolor sit amet," >> putStrLn "consectetur adipiscing elit," >> putStrLn "sed do eiusmod tempor incididunt" >> putStrLn "ut labore et dolore magna aliqua."
3539
```
3640

37-
読みづらい!
41+
一つや二つならともかく、ここまで多くの「命令」を繋げると読みづらくなってしまいますが。
3842

3943
要するにほかのプログラミング言語における`;`(文の区切り記号)と似てる!
4044

0 commit comments

Comments
 (0)