最悪なHello World

2009/07/08 by demuyan · コメントする
カテゴリー: プログラミング 
  このエントリーを含むはてなブックマーク この記事をクリップ! コメントを見る

To all who Think Themselves a Programmerより。

サンフランシスコのある会社での求人なのだが、この会社では一次選考として、どの言語を使用してもいいので最悪なHelloWorld(画面にHello Worldと表示させるだけのプログラム)を書いてもらい、それを採用基準にしている。

最善の手法ではなく、最悪な手法で試すとはなかなか面白い。言語選びなどでも個性が出るので、その人の潜在的なスキルが試される。日本じゃこんな手法を採用している企業なんて少ないよなぁ。

採用された例

原文より抜粋して掲載。変態的(褒め言葉)なHello Worldの世界へご招待。

その1

y = lambda { |f| lambda { |x| lambda { |n| (f.call (x.call x)).call n } }.
call lambda { |x| lambda { |n| (f.call (x.call x)).call n } } }
 
hw = y.call lambda { |f| lambda { |n|
    if n <= 2 then print [" world", "hello", "\n"][n] end
    if n > 0 then (f.call (n-1)) end } }
 
puts hw.call 5

その2

import urllib2
import re
u = urllib2.urlopen("http://saymix.com/")
 
from tokenize import generate_tokens, STRING
from collections import defaultdict
wf = defaultdict(lambda: 0)
 
for tp,vl,_,_,_ in generate_tokens(u.readline):
    if tp == STRING:
        for v in re.compile(r'\w{5}').findall(vl):
            wf[v.lower()] += 1
 
print "%s %s" % tuple([v[0] for v in sorted(wf.iteritems(), key=lambda (k,v): (v,k))[-2:]])

その3

import sys;y = 0;z=""
for a in [["y+=1","y<<=1","z+=chr(y);y=0"]["+>.".find(m)] for m in \
          "+>>>>++>>.+>>+>>+++++>>+.+>>++>>+++>>.+>>++>>+++>>.+>>++>>+++>>+++.+>>>>"+\
       ">.+>>+>>>>+++++++.+>>++>>+++>>+++.+>>++>>+++>>++++++.+>>++>>+++>>.+>>+>>+++++>>."]:exec(a)
print z

その4

from random import choice
from itertools import count
from zlib import crc32
import sys
any(crc32(h)==472456355 and not sys.stdout.write(h) for h in(''.join(choice('! edHlorW')for _ in '.'*12)for _ in count()))

その5

set 68 65 6C 6C 6F 1 77 6F 72 6C 64; while [[ $1 ]]; do dd if=/dev/urandom bs=1c count=1 2> /dev/null | sed -n "/\\x$1/{ p; Q1; }" || shift; done; echo

その6

eval(gzinflate(base64_decode('
4+Wyt+PlsrEvyCjg5UrOSSwuVgjPL8
pJUajm5eIsKE3KyUxWSCvNSy7JzM9T
8EjNyclX0NAES3KmJmfkK8THu4X6OY
d4+vvFx1vDRZMzijSMjTStkZQ5+zgG
B0PU1PJyAZFKhYKtQl5qOcQ+a5CArh
3YBg2QRiRnAQA=')));

で上記のコードを展開したのがこれ。

class World {
    public function Hello () {
        echo __FUNCTION__;
        echo chr(32);
        echo __CLASS__;
    }
}
$x = new World;
$x->Hello();

その7

ps aux | head -1 | awk '{print $11$5}' |  tr '[\103\117\115\115\101\116\104\126\123\132]' '[\110\145\154\154\157\127\157\162\154\144]' | sed 's/o/o /'

その8

ps ax | awk -F":" '{ print $2 }' | grep "Hello Bitches" | awk -F" " '{print $3 " " $4 }'

よくこんなコードのを思いつくなと感心する。

この本の内容も負けず劣らず変態的(誉め言葉)なコードのオンパレード。こちらの本に書かれている内容はずっと実用的だが。

こちらもあわせてどうぞ

Comments

コメントをどうぞ...





Trackback URL

Get Adobe Flash playerPlugin by wpburn.com wordpress themes