2012/07/12

Recent entries from same category

  1. 書評「プログラミング言語大全」
  2. Google Developers Expert (Go) になりました。
  3. 1つの横着から隠しファイルが生まれた瞬間
  4. 書評:[試して理解]Linuxのしくみ
  5. GoCon に初参加してきた。

今日こんな記事を見た。
Mahdi Yusuf: Most Pressed Keys and Programming Syntaxes

I switch between programming languages quite a bit; I often wondered what happens when having to dea...

http://www.mahdiyusuf.com/post/9947002105/most-pressed-keys-and-programming-syntaxes-2
各プログラミング言語でどのキーを多くタイプするかという物。
Lispや関数言語で () が多いのはいいとして、どの言語もやたら e が多い。気になってつぶやいたら
英語ベースだからじゃ
英単語を書いていると、どうしてもeを打つ機会が多くなるというだけではないでしょうか。
という意見を頂いた。気になったので少し調べる事にした。
vim で普段辞書として使っている gene95 を使った。そのままだと測定材料にならないので
  • :%s/[^a-zA-Z]/ /g 英文字以外を全て空白に(空白を単語区切りにする)
  • :%s/\s\+/\r/g 空白を改行に(これにより行が単語単位になる)
  • :%g/^\s*$/d _ 空行を削除
  • :%!sort|uniq ソートしてユニーク(感嘆符 a とか多すぎる)
あとはvim scriptでカウント
let text = join(readfile(expand('~/vimfiles/dict/gene_words.txt'))'')
let arr = split(tolower(text)'\zs')
for c in map(range(char2nr('a')char2nr('z'))'nr2char(v:val)')
  echo c count(arrc)
endfor
vim スクリプトにはエディタなのに配列からマッチするアイテムの数を取得する関数があったりいろいろ酷いと思います。
さて実行結果
a 22802
b 5439
c 12688
d 9441
e 30389
f 4122
g 6767
h 6478
i 23047
j 589
k 2368
l 14313
m 8362
n 18614
o 18331
p 8467
q 547
r 19730
s 17365
t 19446
u 9493
v 3064
w 2444
x 1049
y 5310
z 987
ソートしてみよう
:%!sort -nr -k 2
e 30389
i 23047
a 22802
r 19730
t 19446
n 18614
o 18331
s 17365
l 14313
c 12688
u 9493
d 9441
p 8467
m 8362
g 6767
h 6478
b 5439
y 5310
f 4122
v 3064
w 2444
k 2368
x 1049
z 987
j 589
q 547
おぉぉぉぉ.... やっぱり英単語って e が多いんですね。。。
ひとつ賢くなった。
Posted at by | Edit


blog comments powered by Disqus