今日は安息の日とした。 自分の問題は、自分がどこにいるのかを捉えることであることだと思う。そして、自分の環境がどうであるかを見極めることである。
diary
buy
このコロナの情勢で、自宅における作業環境をよりよくするため、メモリとHDDの購入、そしてとうとうウルトラワイドモニターの購入をした。
でかい出費であるが、痛みは少ない。 必要なものであるから。
PCをあけてどうこうするのは面倒だが面白味がある。
vision
全能の父なる神はアダムに「どこにいるのか」と問うた。
今、私はどこにいるのだろうか。
すべきことを見つける前に、私がどこにいるのかを見抜かねばならない。
(あなたは常に私と共におり、どこに私が行こうとも、あなたの霊から離れることはできません。)
VPoE
インタビュー記事を読んだ。 あんまりすっきりしなかった。 というのも、経歴とか、内的理由とかの方が多く、あまり何をやっているか、どうやっているかについての深い説明がなかったからだ。 (そもそも他人に興味がないのではないだろうか、私は?)
my vision
そのうえで、自分がやらねば、と思ったのは、やはり第一に内的理由の発見と、第二に組織に対する責務やインパクトを見つけることである。
自分の内的理由の探求については、先日のチームのミッション作成の方法を個人のものに流用することを考えている。
あそこで欠けていた視点は、今自分がどういう環境にいるのか、ということと、どう環境が変わっていくか、である。
第二の課題については、小さな組織においては、大きなインパクトを出しづらいという問題はある。 ただ、見せ方をどうするか、というところは意識して損はないだろう。
自分は何のために生まれ、そして、どこにいて、どうしてここにいて、なにをするのか、ということについて、把握しなければならない。
今日の勉強
rust
TRPL pp.197-203
- Traitを型に実装する。
imple Trait名 for 実装対象の型 {...}
- Traitで目的の動作を定義し、型にトレイトを実装
- impl ブロック内に
- 目的のメソッドシグニチャを置き
- 欲しい特定の振る舞いをメソッド本体に入れる
- 作ったTraitは外部からuseを用いてスコープに取り込むことができる
- 注意すべき制限
- トレイトか対象の型が自分のクレートに固有(local)であるときのみ、型に対してトレイトを実装できるというCoherence もしくは孤児のルールという制限がある
- 外部のトレイトを外部の型に対して実装はできない
- 他人のコードで破壊されたり、他人のコードを破壊したりが生じない
- 外部のトレイトを外部の型に対して実装はできない
- トレイトか対象の型が自分のクレートに固有(local)であるときのみ、型に対してトレイトを実装できるというCoherence もしくは孤児のルールという制限がある
- トレイトの全てあるいは一部のメソッドに対してデフォルトの振る舞いを指定できる
- メソッドシグニチャを
;
で終えるのではなく、{}
でメルコとで - 対象の型で実装しなかった場合はそれを呼び出すようになる
- デフォルト実装をオーバーライドするのは、通常の実装がそれ。
- デフォルト実装をオーバーライドしている時相から呼び出すことはできない
- デフォルト実装は、自らのトレイトのデフォルト実装を持たない他のメソッドを呼び出すことができる
- メソッドシグニチャを
- トレイトを引数にすることで色々な種類の型を受け付ける関数を定義できる
- 引数の型に、具体的な型の代わりに、
impl キーワード + トレイト名
とする- これで指定されたトレイトを実装しているあらゆる型を受け付ける
- この書き方は、より長いトレイト境界(trait bound)と呼ばれる姿の糖衣構文
fn 関数名 (引数: impl トレイト名)
fn 関数名<型引数: トレイト名> (引数: 型引数)
- トレイト境界を使った方が、複雑な状態を表現できる
- 引数の型に、具体的な型の代わりに、
team
痛い失敗例を全然書いていないから面白くなかった。
こうやりましょう!みたいなのだけだと痛みがなく、心に響きも得られない。
isabelle
L_correctの証明をそのままbury_correctに流用した。