1. Yametaro

    No comment

    Yametaro
Changes in body
Source | HTML | Preview
@@ -106,14 +106,14 @@
ハスケル子「はい」
ハスケル子「**`x`**はどこかにある値を**参照している**、と考えなくても」
ハスケル子「単に**`3`がそこにある**かのように扱えるんです」
-ハスケル子「なので
+ワイ「ふむふむ
-ハスケル子「**参照のことを意識せずに扱える**
-ハスケル子「つまり**参照透過的**だということです」
+ハスケル子「なので」
+ハスケル子「**参照のことを意識せずに扱える**ってことです
ワイ「ほええ」
ハスケル子「変数の値が**不変**だと、色々と**心配事が減る**んです」
@@ -123,15 +123,20 @@
ワイ「**知らんうち**に**`x`**の値が変わっとった!」
ワイ「っちゅうことが**ない**ってことやな?」
ハスケル子「そうです」
-ハスケル子「そして、純粋関数型言語では**関数****参照透過的**で
-ハスケル子「**同じ引数**を渡せば**常に同じ値を返してくれる**んです」
+ハスケル子「そして、変数の値が**不変**であることによって」
+ハスケル子「**関数****参照透過性**が担保されます」
+
+ワイ「**関数**の**参照透過性**・・・」
+
+ハスケル子「つまり
+ハスケル子「**同じ引数**を渡せば**常に同じ値を返してくれる**んです」
ワイ「なるほどな」
-ワイ「**場面によって**戻り値が変わったりせぇへん、いうことか」
+ワイ「**関数外の変数**とか**場面**とかによって戻り値が変わったりせぇへん、いうことか」
ワイ「それは扱いやすいかもな」
ワイ「でも・・・」
ワイ「逆に**場面によって処理を変えたい**場合はどうすんの?」
ワイ「例えば・・・」
@@ -183,11 +188,28 @@
ハスケル子「もしこの関数をテストするときとかも」
ハスケル子「朝と夜に2回テストしないでも」
ハスケル子「`朝`と`夜`という2つの引数を与えてテストしてみればいいだけなので」
ハスケル子「テストがしやすいです」
-ワイ「引数として`昼`を与えたらどうなんの?」
+ワイ「なるほどな」
+
+## まとめ
+
+- 純粋関数型言語には
+ - **再代入という概念がない**
+ - 変数の値は不変
+ - 関数は、引数が同じであれば常に同じ値を返す(**参照透過性**)
+
+ワイ「↑ってことやね!」
+
+ハスケル子「はい」
+
+
+## でもちょっと気になるワイ
+
+ワイ「でもさ」
+ワイ「さっきの変数に、引数として`昼`を与えたらどうなんの?」
ハスケル子「私なら型を自作して`朝`と`夜`以外はブロックします」
ハスケル子「素のJSでは出来ませんけど」
ワイ「なるほどな(**型を自作?**)」