はてなキーワード: イディオムとは
最初の文のdepending on以下は分詞構文というよりは、イディオムというか前置詞的に使われてるから何かの文法書では群前置詞とかって呼ばれてた覚えが。which以下は間接疑問文で、全体としては「どのrasterizerがインストールされているかによって」。
次の文のthey feelは挿入されたもので、The man I thought to be smart was stupid in fact. という場合のI thoughtと同じ(例は適当)。その文のprovidesの主語はwhichever outline formatで、「font creatorsは彼らがthe best set of featuresを与えてくれると思うどんなoutline formatでも使用できる」ということ。
微妙に間違ってるかもしれないけどこんな感じ。こういうの久しぶりだけど説明するのって難しい。
例えば下記の擬似コード
i = 1; while( i & 7 ) { i++; }
勘弁して。いや、わかるよ。言いたいことはさ。でも俺こういう書き方慣れてないから脳内で素早く2進数変換できないの。
いや単なるイディオムとして覚えてればいい話ってのはごもっともだけど普段こういう書き方しないからパッと出てこないんだよね。
一応これがいまいちわからない人のために説明すると
i = 1; while( i < 8 ) { i++; }
ってことだから。(厳密に言えば少し違うが、ここでの話はこれで良い)
なんちゅーかさ。条件が10以下とかに変わるだけで破綻するしさ。
ってかもう今時のコンパイラならコレくらいの変換勝手にやってくれるんじゃねーの?(さすがにまだまだ?この辺疎い)
そうであれば速度的は変わらないわけで単純に可読性&拡張性低下させてるだけの存在になるよね。
まあでもこれは基本的なことなんだけど、自分では書かなくても読めるようにはならないといけないってのは真なので文句を言ってるだけじゃ何も変わらない。
もっともっと書いて書いて書きまくろう。
上のような処理は各ビットが全部立ってる場合に有効になるので算出方法としては
(1 << x) - 1
となる。
つまり2の累乗から1引くと各ビットが立った数値となるわけなのです
10進数 2進数 1 00000001 3 00000011 7 00000111 15 00001111 31 00011111 63 00111111 127 01111111 :
ビットが全部立ってる数値を&で評価すると、その値を一つ超える数値、すなわち2の倍数が来るまでは常に真となるわけですね。
先ほどの処理で言うならばこういうことになります。
i & 7 = x (1)00000001 & (7)00000111 = 00000001 (2)00000010 & (7)00000111 = 00000010 (3)00000011 & (7)00000111 = 00000011 (4)00000100 & (7)00000111 = 00000100 (5)00000101 & (7)00000111 = 00000101 (6)00000110 & (7)00000111 = 00000110 (7)00000111 & (7)00000111 = 00000111 (8)00001000 & (7)00000111 = 00000000
という感じでiが8になった時点で7との論理演算の結果が偽となるため、ループが終了します。
正直スクリプト系言語から入るとこういう低レベルな計算を行うことは殆どないし、逆にこういうコードを書いてると先輩から怒られます。
なので自分で学ばない限りなかなかこれらのコードを直に理解できる状態にはならないので注意が必要です。
コードというのは「書けなくても、書かなくても、読めなければならない」これ鉄則。
(1)
【携帯で読めるように】短く文を切る。
(2)
【なんでそこまでして携帯で小説読むかというと】メールの延長ぐらいでしか文章読めない小中学生(並の人)向けだから。更に付け加えるならばそういう人向けに『感動』を手軽に切り売りする目的の娯楽物。
で、
(3)
【小中学生(並)の人間相手だから】内容は(背伸びしたい)子ども向け、エロ・グロ・バイオレンス主体。
…とまあ、そんな風に、
その条件と要請の下で築き上げられた文化(3)
で定義すれば大体規定可能。枕詞をはずすと、物の本質が見えない。基本は「枠」が生み出した一つの文化でしょ。たとえば
(1)5/7/5というスタイル枠
(2)暇な町人が難しいこと知らなくても取り組める娯楽
- 単語、語彙
- 文法
- 聞く
- 書く
個人的には、優先順位は文法>書く>単語>聞く。単語の優先順位が低いのは、大量の英文に触れれば嫌でも記憶に刷り込まれていくから。
とにかく大量の英語の文章を読んで、書く事。英作文ははっきり言って丸暗記でいい。応用がどうとか抜かすのは、英作文のテキスト一冊丸暗記してからでいい。イディオムも、用例を丸暗記してしまった方が早いし思い出しやすい(だから馬と鯨の例文なんてものが存在するわけだ)。
英語に関しては、出来ない奴ほど小手先でなんとかしようとする。語学は慣れだ。英語に接する絶対量、脳に刻み込んだ英文の総数が底力を決める。リスニングに関しては、俺はリスニングが軽視されてた時代の人間なんでよく分からん。