- 706 名前:697 mailto:sage [2009/02/05(木) 01:01:19 ]
- >>701
>>702 その辺の挙動は、>>697で最後にさらっと書いたsyntactic categoryというのが絡んでくる。 >>697では最も内側の式という風に書いたけど、実はもうちょっと正確に言うと、もっとも内側で、 syntactic categoryがExprの式が無名関数化される。 まず、 a.filter(2 < 1 + _) についてだが、1 + _の部分だけではInfixExprとみなされる。その外側の 2 < 1 + _も同じくInfixExprだが、メソッド呼び出しの引数の位置に来ることによって Exprに昇格(適当にでっち上げた用語だが)し、結果として、2 < 1 + _が(x) => (2 < 1 + _) のように無名関数化される。 a.filter( (2).<( 1 + _ ) ) については、1 + _は同様にInfixExprだが、メソッド呼び出し引数の括弧の位置に 現れたことによって、Exprに昇格してしまう。そのため、1 + _が無名関数化される。 a.filter( 2 < (1 + _ ) ) でも、やはり1 + _はInfixExprだが、式をグルーピングする括弧があることによって、 Exprに昇格してしまう。そのため、1 + _が無名関数化される。
|

|