f(f(x)) ==> -x な、実数を返す f を定義せよ…クイズ 3


趣を変えて、 の PostScript による変態的な手法と大枠で同じ方針による。

Number >> f
   | method nn |
   method := thisContext method.
   nn := method literals size.
   method literalAt: nn put: (
      (method literalAt: nn) == #negated
         ifTrue: [#yourself] ifFalse: [#negated]).
   ^ self negated
#(1.2 0 -1.2) collect: [:real | real f f]
=> #(-1.2 0 1.2)