Skip to content

Commit d2139a8

Browse files
committed
参照が仕事してなかったので修正
1 parent 272721c commit d2139a8

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

docs/6-exercise/1-basis-of-web/index.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ if (box <= 30 && weight <= 2000) {
273273
そのアルゴリズムは次の通りです。
274274

275275
- ソート前配列のある要素を取り、その一つ後ろの要素と比較する
276-
- もし一つ後ろの要素の方が小さければ、2項を入れ替える
276+
- もし一つ後ろの要素の方が小さければ、二項を入れ替える
277277
- そうでなければ、何もしない
278278
- その操作を一番前の要素から一番後ろにたどり着くまで繰り返す
279279
- これで一番後ろの要素が一番大きいものであると確定する
@@ -316,12 +316,10 @@ function bubbleSort(array) {
316316

317317
</Answer>
318318

319-
:::tip
319+
:::tip <Term strong type="javascriptReference">参照</Term>と<Term strong type="javascriptSideEffects">副作用</Term>の話
320320

321-
### <Term strong type="javascriptReference">参照</Term>と<Term strong type="javascriptSideEffects">副作用</Term>の話
322-
323-
本回答例では返り値をarrayに代入していないにも関わらず、arrayの中身が変わってしまいます。なぜでしょうか?<br />
324-
(参照の節)[../browser-apps/constant/#参照]で説明したように、これは配列が評価されたときにそれ自身ではなく、配列の<Term strong type="javascriptReference">参照</Term>が得られるからです。関数を実行したときに返り値以外に関数外部に影響を与えることを<Term strong type="javascriptSideEffects">副作用</Term>と呼び、<Term strong type="javascriptSideEffects">副作用</Term>を持たない関数を<Term strong type="javascriptPureFunction">純粋関数</Term>と呼びます。思わぬ<Term type="javascriptSideEffects">副作用</Term>を防ぐために共用の関数は<Term type="javascriptPureFunction">純粋関数</Term>であることが望ましいとされています。また関数のマクロ的役割である「操作のまとまり」として、<Term type="javascriptSideEffects">副作用</Term>である外部へのアクセス(画面への表示、インターネットのアクセス、ファイルの入出力など)をひとまとめにする場合は、専用の関数を作成し、それを明示すべきであるとされています。関数の引数以外の可変変数を参照することは<Term strong type="javascriptReferenceTransparency">参照透過性</Term>の妨げになり、デバッグが難しくなるといわれています。
321+
本回答例では返り値をarrayに代入していないにも関わらず、arrayの中身が変わってしまいます。なぜでしょうか?<p />
322+
[**参照の節**](../browser-apps/constant/#参照)で説明したように、これは配列が評価されたときにそれ自身ではなく、配列の<Term strong type="javascriptReference">参照</Term>が得られるからです。関数を実行したときに返り値以外に関数外部に影響を与えることを<Term strong type="javascriptSideEffects">副作用</Term>と呼び、<Term strong type="javascriptSideEffects">副作用</Term>を持たない関数を<Term strong type="javascriptPureFunction">純粋関数</Term>と呼びます。思わぬ<Term strong type="javascriptSideEffects">副作用</Term>を防ぐために共用の関数は<Term strong type="javascriptPureFunction">純粋関数</Term>であることが望ましいとされています。また関数のマクロ的役割である「操作のまとまり」として、<Term strong type="javascriptSideEffects">副作用</Term>である外部へのアクセス(画面への表示、インターネットのアクセス、ファイルの入出力など)をひとまとめにする場合は、専用の関数を作成し、それを明示すべきであるとされています。関数の引数以外の可変変数を参照することは<Term strong type="javascriptReferenceTransparency">参照透過性</Term>の妨げになり、デバッグが難しくなるといわれています。<p />
325323
上の関数を<Term strong type="javascriptPureFunction">純粋関数</Term>に書き直すと例えば、
326324

327325
<Answer>

src/components/Term/definitions.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export default {
1616
"/docs/trial-session/deploy/": "作ったウェブアプリを公開する",
1717
"/docs/browser-apps/inspector/": "ブラウザの開発者ツール",
1818
"/docs/browser-apps/constant/": "定数とオブジェクトの参照",
19+
"/docs/browser-apps/constant/#参照": "参照",
1920
"/docs/browser-apps/loop/": "繰り返し",
2021
"/docs/browser-apps/class/": "クラス",
2122
"/docs/browser-apps/array/": "配列",
@@ -36,6 +37,7 @@ export default {
3637
"/docs/advanced/bundler/": "トランスパイラとモジュールバンドラ",
3738
"/docs/advanced/typescript/": "TypeScript",
3839
"/docs/advanced/react/": "React",
40+
"/docs/exercise/basis-of-web/#参照と副作用の話": "副作用と純粋関数",
3941
},
4042
terms: {
4143
fileExtension: {
@@ -296,25 +298,25 @@ export default {
296298
name: "参照",
297299
definition:
298300
"値のコピーではなくメモリの場所を指し示す値の形式。オブジェクトや配列を直接評価すると得られる。代入演算子で参照値を渡した場合、二つの変数が同じものを指し示していることになるため、片方を変更するともう片方も変更されてしまう。",
299-
// referencePage: "/docs/browser-apps/constant/#参照",
301+
referencePage: "/docs/browser-apps/constant/#参照",
300302
},
301303
javascriptSideEffects: {
302304
name: "副作用",
303305
definition:
304306
"関数などを実行したときに、返り値以外の変数に影響を及ぼすこと。",
305-
// referencePage: "/docs/exercise/basis-of-web/#参照と副作用の話",
307+
referencePage: "/docs/exercise/basis-of-web/#参照と副作用の話",
306308
},
307309
javascriptPureFunction: {
308310
name: "純粋関数",
309311
definition:
310312
"副作用を持たない関数。数学的な関数や写像により近い概念。",
311-
// referencePage: "/docs/exercise/basis-of-web/#参照と副作用の話",
313+
referencePage: "/docs/exercise/basis-of-web/#参照と副作用の話",
312314
},
313315
javascriptReferenceTransparency: {
314316
name: "参照透過性",
315317
definition:
316318
"関数に一定の引数を与えると、常に一定の値を返すこと。デバッグがしやすく、キャッシュなどを使って自動で高速化することができる。",
317-
// referencePage: "/docs/exercise/basis-of-web/#参照と副作用の話",
319+
referencePage: "/docs/exercise/basis-of-web/#参照と副作用の話",
318320
},
319321
javascriptClass: {
320322
name: "クラス (JavaScript)",

0 commit comments

Comments
 (0)