横向きピラミッド
LL Futureでのgolfにもあったらしい「横向きピラミッド」を社内でやってみた。
golfといっても短い打数を競い合うわけではないので、
ワンライナーとかにはせずインデント、わかりやすい変数名をつけるなど、
実用的なコードを目指すのが前提。
なので単にコーディングコンテストといったところか。
javaで実装した人が多く、ついでC。
私はjavascriptで再帰を使ってこんなコードを実装してみた。
function pyramid(n) { function pyramid_aux(n) { var list = new Array(n + 1).join("*"); return n <= 1 ? [list] : [list].concat(pyramid_aux(n-1)); } return pyramid_aux(n).reverse().concat(pyramid_aux(n).slice(1,n+1)); } print(pyramid(5).join("\n"));
基本的にイテレータは好きだが、副作用あり前提のfor文は嫌いなので
こんなコードになりました。
再帰を読めないと理解できないって事でかなり不評でしたが。
まぁ確かに実用性とはほど遠い気もする。。。
他の参加者のエントリ
javaで横向きピラミッドを描画@駆け出しプログラマの奮闘記
javascriptで横向きピラミッドを描画@駆け出しプログラマの奮闘記