全体像把握と再利用のために生まれた関数
https://gyazo.com/d6f51a7bb25ce3d2a5a198a3989a2ad9
nishio.icon 拙著「コーディングを支える技術」 p.25 第5章 関数
「関数的に書きましょう」の方が近いが、問題はそれがまったく一般的なたとえではない
まったく一般的でないどころか、この場にいる人にもあまり伝わらなくてrashita.iconがけちょんけちょんになってて面白かった
メタファーが誕生した段階でそれが広く他人に伝わるものである必要はない、まずは発展させて構造を明らかにした方がいい
この種の関数的概念は少なくとも1949年のEDSACでは既に使われており、プログラミング言語を読み書きできる人にとっては見慣れた概念
プログラムが大きくなってくると、だんだん全体像を把握しにくくなります。また、よく似た処理を何度も使いたくなることもあります。
関数は、この問題を解決するために生まれました。意味的にひとかたまりのコードをくくりだして名前を付けることで、そのコードが何をしてい るか把握しやすくなります。そして、その関数をほかの場所から呼び出して使えるようにすることで、再利用ができるようになります。(コーディングを支える技術 p.56)
この「プログラムが大きくなってくると全体像を把握しにくくなる、その問題を解決するために関数が作られた」の「プログラム」の部分を「言語によって記述されたもの」に一般化することができる
Scrapboxの「リンク」と「バックリンク」「リンク位置へのスクロール」によって関数的な「ジャンプ」「戻る」が可能になった
「関数のメタファー」というタイトルをつけてから書き始めてしまった
「全体像把握と再利用のために生まれた関数」に変えた
この関数という概念の別名、というか「より汎用的に使える」呼び方がatomicなのかもしれないsta.icon
逆ジェンガという関数をつくりました、と言われてもプログラム知ってる人以外にはわからない え?数学の二次関数?え?とかなりそう
逆ジェンガというatomic
「相手が積み上げられるように積むこと」 ← こういう概念を指す何かが欲しい
これにジェンガというメタファーを持たせて、逆ジェンガという名前をつけた
別のatomicもつくれるだろう
たとえばsta.iconがすぐ思いついたのは
相手も積めるようにする → 優しい、配慮してる → 優しいに関する英語をちょっと調べる → gentle kind mild sweet soft → 「積む」も英語で → stack load put → ……
みたいな思考
途中でだるくなったので強引に切り上げるが、そうだなぁ、sweet stack とでも名付けてみるか(たぶん英語のニュアンスさして考えてない、いいかげんな名付けだが)
sweet stack
あるいはsweet stacking
逆ジェンガという概念をつくりました
概念、だと広すぎる
逆ジェンガというatomicをつくりました
概念ではなくatomicと呼ぶと、原子のニュアンス(何かの構成要素になっている感)があるように思うsta.icon
逆ジェンガやsweet stackingというatomicは、何かの構成要素になる(ないしはできる)ことを期待してつくられたものだ
そしてatomicは、プログラマが好き勝手に関数をつくるように、我々知的生産者が好き勝手につくってもいいのである
玄武.iconさんは逆ジェンガというatomicをつくった
sta.iconはsweet stackingというatomicをつくった(かなり荒削りだがと言い訳しておく……)
他の人も別のatomicをつくることができるだろう
---
このatomicの、別の実装(つくりかた)を考えてみるsta.icon
とりあえず「概念的原子(atomic concept)」を思いついた
atomiconcept?w
軽率に前後の言葉を繋げるのが好きであるsta.icon*2
あるいは「概子」