さて始まりました新シリーズ「プログラム言語にみる英単語」第一回目はeach!
彼女あってこそのプログラム言語だと言えるぐらいの大黒柱です
みなさんはコンビニで働いたことありますか?
僕は今ビールが飲みたくなってきています
コンビニに走るかどうか迷いながらこれを書いています
コンビニじゃなくてもいいです
お店のレジやったことありますか?
僕はないです
僕にはできそうもないです
だって焦るじゃない
レジ前に行列できちゃったら
今、目の前の会計に集中することが最善だとわかっていても
後ろに並んでいる人がちょっとコワモテだったりイライラしてるふうだったり急いでいるふうだったり
あるいは美人だったり
あるいは胸元が大きくあいた服を着ていたり
状況が僕の集中力を奪っていく
バーコードがなかなか読めない
ビニール袋が滑ってなかなか開けない
お釣りをこぼす
想像しただけでやっぱり僕には無理だ無理
ということで彼女に登場願おう!
今回はRubyのeachです
(どのプログラム言語にも相当するものがあります
書き方とか使い方は少し違いますが
Rubyは簡潔で英語そのものらしいです
プログラム言語のわからない人でも読みやすいと思います)
3人が商品を抱えてレジに並んでいます
彼女はてきぱきと会計をすませていく
#ruby
#3人のお客さんが並んでいる
customers = {'田中' => [100,200,150], '斉藤' => [2500,5000], '鈴木' => [2000,3999,6200,10500]}
#ひとりずつ会計を済ましていく
customers.each do |name, goods|
#最初にレジをリセット
sum = 0
#商品一つづつの金額を足していく
goods.each do |price|
sum += price
end
print name, "様、", sum ,"円のお買い上げです\n"
end
#田中様、450円のお買い上げです
#斉藤様、7500円のお買い上げです
#鈴木様、22699円のお買い上げです
おみごと
彼女はさっさと列をさばいてしまいました
彼女の仕事ぶりをみていくと
僕のように気が散りません
ひとりずつ着実に済ませていきます
常にその人に集中します
前後のお客さんが何がしかの影響を与えることは決してありません
彼女ももちろんうしろにお客さんが並んでいることを知らないわけではないのです
しかし常にその人のみに集中します
これが彼女 each の本質です
全体を認識に含めつつも、それぞれにぎゅっとフォーカスする
all や every にはこういうことはできないはずです
「お待ちのお客様、こちらへどうぞ!」
おっと、お店が再び混んできました
彼女ひとりで捌き切れないぐらい繁盛しているようですね
each くんが棚の整理から戻りレジについたようです
each が上手にやってのける類の仕事は容易に分散させて並列処理ができます
一つづつの会計は独立していてけっして関係しあうことがないからです
eachくん「お客様すいません、いま1000円札を切らしてしまって・・・」
客A「こまったなあ、これしかもってでてこなかったんだよ」
客B「あら、わたしいまたくさん持っているから両替するわ」
eachくん「ありがとうございます!」