ig() の代替案として希哲12年4月16日考案。ret の打ち消しであることが分かりやすい。希哲12年4月16日,移行を決定,順次置換を進めることに。17日,xtd.h に追加,cu.el で赤太字で表示されるように修正。
その後,一時保留状態となるが希哲13年7月10日,再度検討し最終的に採用となった。
「放っておく」(let it go)ぐらいの意味で使える。
ig() の代替案として希哲12年4月16日考案。ret の打ち消しであることが分かりやすい。希哲12年4月16日,移行を決定,順次置換を進めることに。17日,xtd.h に追加,cu.el で赤太字で表示されるように修正。
その後,一時保留状態となるが希哲13年7月10日,再度検討し最終的に採用となった。
「放っておく」(let it go)ぐらいの意味で使える。
また妙な閃きを得てしまった。
今日も Iti/src/site_/ 以下の整理をしようと思ったところで,拡張子 .u.h にふと目が留まり,let() なども含めたこの種の手法を「明示的手抜き」として概念化出来そうなことに気付いた。
ここで,有用視してきたハリボテのような手抜き函数「サボルーチン」も明示的に出来ないか,と考え始めた。
最初,廃止していた cry を復活させてサボルーチンであることを明示することを考えたが,これは dry の対義語として使った方が分かりやすい。その後,印として何らかの込め言を入れることも考えたが,これはこれで煩わしく分かりにくい。スラッシュ三本(///)を末尾に入れて「サンボン」という洒落も考えたが,これはやりすぎだろう。
結局,例外禁止の dry と例外許可の cry のどちらかを例外仕様に記述することを交度規約で推奨し,これが無ければサボルーチンとみなす,という案に落ち着きつつあったが,サボルーチンの明示性に欠け,検索性も悪いという点がどうしても引っかかった。
そこで唐突に閃いたのが,〈sorry〉の意で sry を使うという案だった。C は伝統的にサブルーチンという用語を使わないため,SR がサボルーチンの略にもかかっている。
sry を機能上 cry と同義にしておきつつ,出放りの暫定的明示に使うことで,明示的手抜きの原則に沿わせることが出来る。論組役は,未完成の函数に sry を付け,完成時に cry か dry かを選ぶことで函数が完成していることを明示する。dry は厳格な方なので dry かつ未完成,ということは少ない気がするが,サボルーチンが例外を出すかどうかは大した問題ではないので追い追い都合が良い方に調整していく。
この sry, dry, cry を「例外仕様(fly)別名」という概念でまとめておくことにした。fly も含めて,キーボード上で頭文字が全て連続しているというのも面白い。
廃止を決めてから使い道を模索していた cry の活用場所も見つかり,色々なことが丸くおさまった。
これまで DG_T を中心に ORM 的な機能を担わせる,ということを考えてきたが,この考え方を「DORM」と呼ぶことにした。以前から思いついていた名前だが,いまいち引っかかりが無く決めかねていた。今日,〈dorm〉とも略されるドミトリーと永続化が上手くかかっていることに気付いて採用を決めた。
Cμ の例示などに使う foo, bar, baz の独自拡張として,bay, bax, baw……などと加えていくことを考えた。qux 以降は見慣れず,不規則過ぎるため。
今日も Cμ の仕様を見直しやイチのページ管理まわりの整理。
放任函数(旧無視函数・空函数)として希哲12年4月16日に採用を決定した let() だが,開発渋滞中であったこともあり,検討に甘さがあり,今年に入ってから再検討していた(希哲13年4月6日の開発)。
最初は o_t の自然な応用で o() とし「空函数」などと呼んでいたが,もう少し分かりやすい表現をと希哲10年7月25日から ig() に移行,別名も「無視函数」と改称した。しかし,これでは意図を十分に表わせないと考えた代替案が「放任函数」こと let() だった。
let() は気に入っていたが,一つだけ,他の言語で使われている予約語 let との紛らわしさが懸念だった。論組言語の予約語としては,主に変定数の束縛に使われる。
その後の案として,ok() やビットバケツ(/dev/null)からの連想で nil() が出たが,これらはそれぞれ特殊な値として Cμ では定着しているため,やはり混同の可能性がある。
結局,o() に回帰することまで考えたが,先日 no_t を正式採用し o_t が廃止になったため,この線も消えた。
今日,腰を据えて再検討し,let の一般的な用法と,今後の Cμ の仕様変更の可能性を考えた上で,放任函数として使用して問題ないという結論に至った。
現在まで xtd..h には ig() の定義や o() に関する込め言が残っていたが,これらも削除した。
ついでに,放任函数の英訳を放任主義(let-alone policy)になぞらえて〈let-alone function〉とした。
スレッドプールを管理する類型に気の効い名前がないかずっと考えていたが,〈loom〉が使えそうなことに気付き,早速 thr::mgr_T を loom_T に改称した。
thr と付けなくてもスレッドを管理するもの,ということが自然に連想出来るのが良い。
無視函数について再検討。
現在採用している let() は他の言語で変数束縛などに使われている let と紛らわしくなる可能性がある。nil は有力候補だったが,この場合 nil を返すわけではないので直感性に難があるか。同様の理由で ok() も微妙かもしれない。一周まわって o() に落ち着きそうな気もしてきた。
knu-cu-mode(knu-cu.el)の整理続き。