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 とか多すぎる)
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(arr, c)
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
が多いんですね。。。ひとつ賢くなった。