ScalaでFizzBuzzしてみた
社内でFizzBuzz大会をやりました。
##はじめに 社内のチームでFizzBuzz大会をやろう、という話自体は去年の秋ごろからあって 年が明けて、今日開催しました。
##FizzBuzz大会要綱
###大会参加者
- 15名
###ルール ####ルールその1 引数n(正の整数)が渡されたときに 1~nまでのFizzBuzzを表示する関数を書きなさい。表示形式はFizzBuzzであるとわかれば何でも可 ####ルールその2 実装言語は何でもOK ####ルールその3 何度(何種類)回答してもOK
※ただし、評価対象は1つだけ ####ルールその4 テストコードもあるとイイネ! ####ルールその5 他人のコードを盗まない
※”FizzBuzz”をググってコピペするのも、もちろんNG
※言語のリファレンスを見る、技術書を見るのはOK ####ルールその5 制限時間は、30分 ###大会タイムスケジュール
- 10:00 概要説明
- 10:10 環境準備・コーディング開始
- 10:40 コーディング終了
- 10:45 LT(コードのロジック説明等)
- 11:35 集計
- 11:40 表彰
###評価方法
- 1人持ち時間3分でロジックを解説。LT形式
- これはスゴイと思った順に、3点、2点、1点を投票。
- 合計点数で”Most IKETERU Programer”:MIPを決定
##やって、どうなった? 実装言語は縛らなかったので、いろいろなFizzBuzzが出てきました。
- PHP
- Java
- JavaScript
- C言語
- シェルスクリプト
- CSS
- バッチ
制限時間は、結局10分延長。 それでも何人かは書きあがらなくて、ロジックの説明のみ参戦。 いつもはブラウザで動作させているものを、 コマンドラインから動かすときに「あれ引数どうやってとるんだっけ?」 みたいなところが嵌りポイントっぽかったです。
###面白かったFizzBuzz 個人的に、おぉっと思ったものがいくつか、、
####CSSでFizzBuzz
↑で、3の倍数の色が#f9cになるっていう。 これと同じパターンで、5の倍数・3と5の倍数の時に色が変わるって。
CSS使って、FizzとBuzzを色の違いで表現するとはっ!! 完全に盲点でした。
これ文字列でFizzもBuzzも出力してなくて、見た感じわかりづらいんですけどね。。すごかったですw
###Chrome上でFizzBuzz
まず1行でFizzBuzzしてるところが、Cool!! そして何より、LTで ChromeのJavaScriptコンソール上で実行して見せるところがすげぇっ!!って感じw
##自分のFizzBuzz解答 もちろん私はScalaで書きました。
自分なりのポイントとしては、
- 剰余算の結果を”== 0”と比較するのは、なんかイケてない
- 折角Scalaなので、Mapとパターンマッチを使ってみる
もっと短く書けるだろうけど、今はこれが精一杯。
##最後に 実際にFizzBuzzを書くようなシーンは仕事では出会わないだろうけど、 「ここをこうしたらもっとカッコいい!」ってワクワクできるのはいいですよね
もっとカッコいいコードが書けるようになりたいなぁと思いました
Latest post:
- OpenWhiskのScala sbtプロジェクトのgiter8テンプレートを作った
- OpenWhisk+Scalaで作るServerless Architectureとっかかり
- BluemixにPlayframeworkアプリケーションをデプロイする
- sbt、Giter8を統合するってよ
- Scala 2.12.0でSAM型