Cametan42さんのお手本を理解しながら写経しつつ、こちらに覚え書きも書いて行くという流れで!
まずいきなり、辞書の入力「,」で改行すると勝手に字下げした状態で揃ってくれる!これは見易い!いや~僕の前の打ち方だと絶対にミスしますよ(だから一発で動いたのは驚いた)。
- 1つの関数は1つの機能に絞る事。
- 関数のテキストエディタ上の行数の上限は12行程度にしておくこと。
ここは本当に自分で笑ってしまう、まるごと全部入れて「関数」のつもりになってるところw
でしょ?辞書から引っ張ってくれば別に条件分岐する必要がない。
ここでTipsその1。
データ構造を伴いながら条件分岐をしなければいけないような場合、辞書型を使って条件分岐を消してしまえ。
↑ここ衝撃でした。条件分岐そのものを消してしまうとか・・僕には絶対に思いつかないわ~と
そして早くも混乱するw rgb(s)のsって変数どこから入力されてるの?とリストを探し回る。2回読んで「あ、for i in の i と一緒か・・(?)」と。あとの方まで読むとリスト内包表記で入力される i を受け取って加工するなりして返すと言う機能のための関数の中でだけ一時的に使われる変数ってこと・・かな
ほえ~ 美しい・・内包表記に関数を組み込めるんか~・・。こうやって読ませてもらってると分かった気になるけど、実際に何も見ずに頭の中で先を見越して書けるんだろうか・・それとも、これこそ写経を重ねるとパターンとして自然に思い浮かぶようになるのかなぁ
そう言えばシーケンスの定義を知らぬ。なるほど・・インデックスがあるってことか、辞書は違うと。
そう言えば(驚くべきことに!)イテラブルの意味も曖昧だった。繰り返せるものか・・
辞書も!?なんか不思議・・
baralist[:-1] とか baralist[-1] の意味も曖昧ですわ・・基本が(-_-;)
-1がケツってのはパックマンのワープ的に理解できる。:-1 は単品で見るとなんか意味不明だけど-1がケツだと分かるとケツを含まないって事で分かるような気もする。
しかし解説を見たら「読める」んだけど、(今のところ)必要に応じて作文できる気がしないw。これを出来るようにするのが写経ってことなのかなぁ・・
ほえ~エレガント(と思う)。そして読めることは読めるんだけども、この構造を作れるようになるんだろうか・・。これも場数なんかなぁ・・とにかく理解した上で写経って事なのか。
この話も興味深かったなぁ・・苫米地英人さんの本を読んだりしてるとやたらと出てくるのが「LISP」って言語の話で、自分のことを関数主義者って言うんですよね。するとこの関数言語的な訓練を受けてる人は苫米地英人さん言うところの「超並列脳」との親和性が高いんやろか・・確かにオブジェクト指向とか手続き言語って、こちらの図を見るとリニア思考っつーんですか?関数の広がりのイメージに比べて流れのイメージに見えますもんねぇ
さて、とりあえずメインの部分までは写経の一回目を理解しながらやらせてもらいました。が!条件分岐が無いために「ボインパターンリスト」を作る手段が思い浮かばない・・とりあえず前に作った条件分岐方式ので一旦形にしてみるか・・
続く