# Ruby, <s>83</s> <s>70</s> <s>60</s> <s>55</s> 49 characters <!-- language: lang-ruby --> f=->a{a.each_cons(3){|x,y,z|p y if(x-y)*(z-y)>0}} Prints all local extremes to STDOUT. <s>Uses the `<=>` "spaceship" operator, which I really like. (It returns 1 if the first thing is greater than the second, -1 if it's less, and 0 if equal. Therefore, if they add to -2 or 2, that means the middle is an extreme.)</s> <s>Not anymore, as @daniero pointed out that the "obvious" way is actually shorter!</s> Changed yet again! Now it uses the awesome algorithm found in [MT0's answer](https://codegolf.stackexchange.com/a/22274/3808) (+1 to him!). Also, I like `each_cons` which selects each `n` groups of consecutive elements in an array. And trailing `if` is interesting too. Overall, I just like how elegant it looks. Some sample runs: irb(main):044:0> f[[1,2,1]] 2 => nil irb(main):045:0> f[[1,0,1,0,1]] 0 1 0 => nil irb(main):046:0> f[[]] => nil irb(main):047:0> f[[1,2,3,4,5,4,3,2,1]] 5 => nil irb(main):048:0> f[[1,1,1,1,1]] => nil irb(main):049:0> f[[10,0,999,-45,3,4]] 0 999 -45 => nil