Saturday, February 4, 2012

vim競技大賽 -- vimgolf

世界上有各種奇奇怪怪的比賽,在電腦界中常出現的一種叫做某某高爾夫,如同真正的高爾夫以杆數決勝負,電腦界的高爾夫往往是利用程式的長短。最近出現的vimgolf,是以vim編輯器作為競技場,參賽者相互比較誰能用最少的按鍵數目來修改一篇文章。

來看一個實際題目:以下是一份code,但是作者把大括號,中括號,以及小括號弄錯了,想請你把錯誤修正過來。


錯誤的程式
var some_function = function {arg1, arg2} [
   var some_array = (1, 2, 3, 4, 'foo');
   for {var i in some_array} (
         console.log(some_array, [{1 + (8 / 2)}, 'hello (world)');
   )
];

正確的程式
var some_function = function (arg1, arg2) {
   var some_array = [1, 2, 3, 4, 'foo'];
   for (var i in some_array) {
         console.log(some_array, [(1 + (8 / 2)), 'hello (world)');
   }
}; 

可以試試看用你最愛用的編輯器,要按幾次按鍵才能完成編輯呢?用vim的話,最少只需用34個鍵就能搞定!如何,是否有興趣學學vim呢?