No Programming, No Life

プログラミング関連の話題や雑記

2009-02-01から1ヶ月間の記事一覧

Groovy 1.6 公開

あーついにGroovy 1.6が公開されましたねぇ。 Groovy - Home時間がなくてまだインストールも出来てない! 早くインストールしていじりたいですなぁ。 参考 Groovy 1.6 has been released! | Groovy Zone

Re:アルファベットの繰り上がり

お題: Server error 投稿: Server error こんな感じになりました println alphaList('A'..'Z', 100)*.join()*.trim().join(', ') /** アルファベットのリストを返却 */ def alphaList(values, num) { // 必要な桁を求める int digit = { int d = 1; int size…

Re:RFC 4180対応版 CSVレコードの分解

お題: Server error 投稿: Server error RFC 4180対応版*1でCSVを分解するお題でした。 こんな感じになりました def csv = '''\ "aaa","b bb","ccc",zzz,"y""Y""y",xxx\ ''' resolveCSV(csv).eachWithIndex{ it, idx -> println "${idx+1} => ${it}" } /** C…

Re:分数を小数に展開, 水の移し替えパズル

分数を小数に展開 お題 整数a, bを受け取り,分数a/bを小数に展開した文字列を返す関数/メソッドを作成してください。結果が循環小数になる場合は,循環部を{}でくくってください。例:a=3, b=8 → 0.375 a=3, b=14 → 0.2{142857}与えられる整数a, bは次の条…

Re:データの圧縮と展開

お題: Server error 投稿: Server error 圧縮、展開ってことなので 圧縮、展開ってことなので、java.util.zip.*パッケージを使って実装するのが一番いいのかなということで。動作確認はGroovy Version: 1.5.7 JVM: 1.6.0_10にて。 /** 圧縮 */ byte[] compre…

最小値や最大値をmax, minで表現する

ある変数の値がマイナスを許容しないような場合があるとして、他の変数から値を受け取って設定するような場合を考えてみる。(Javaにて) 普通に書くと int num1; if (a < 0) { num1 = 0; } else { num1 = a } こんな感じだろうか。もしくは三項演算子を利用し…

Re:固定長データ

お題: Server error 投稿: Server error このお題、固定長データの読み込みということで、ここぞとばかりに今更Java1.4で追加されたNew I/O を使ってやってみようと思い、勢いで投稿してみました。 一応動いてはいるんですが、エレガントさはないですね。Gro…

Re:ブログを書く若いプログラマへ

ブログを書く若いプログラマへ - ”><xmp>TokuLog 改メ tokuhirom’s blog のエントリを読んでいて共感できる部分があったので、引用させていただこう。 それでいいじゃない。自分のために書く、ぐらいでちょうどいいとおもう。 うん、確かにね。私の場合も自分用メ</xmp>…

Inspire Me!

最近はServer error が楽しくて、タイトルのとおり触発されてる私です。いろんな人のコードを見て、「あっ、これなら自分も書けるかも」とか「もっといい書き方があるなぁ〜」とか「こんなお題があったらみんなどう書くんだろう?」とか、どんどん触発されて…

Re:自然数の分割(別表現)

お題: Server error 投稿: Server error 下書き中で詰まってます。下記コードだと、出力される組み合わせが足りない。 下書き中で詰まってます def num = args[0].toInteger() println "young ${num}" def startTime = System.currentTimeMillis() young(num…

Re:全ての組み合わせ

お題: Server error 投稿: Server error 誰も使ってなかったようなので、List#combinations()を使ってみました。 (動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) def crossProduct(Object... params){ params*.toList().combinations() } println crossPr…

Re:ピラミッドを作る, 横向きのピラミッドを作る

お題: Server error Server error 投稿: Server error Server error 縦向きと横向きのピラミッドを作るお題を解いてみました。 両方とも、今さら感がありますが、気にせず投稿。 投稿したコード (動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) // 縦向き…

Re:文字列の反転(括弧の対応を保存)

お題: Server error 投稿: Server error 括弧の対応を保ったまま、文字列を反転させるというお題。(動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) こんな感じになりました def reverseString2(String text) { def pairs = text.replaceAll(/[^\[\]\(\)\{\…

テキストを行番号付きに加工して出力するスクリプト

いや、ほんの小物です。ちょっと必要だったので自分で書きました。(動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10) RowNumbering.groovy def file = new File(args[0]) def lines = file.readLines() def digit = lines.size().toString().size() println …

なんとなくScalaをはじめてみる

Augmented Reality World -拡張現実- 開発言語の話題 Ruby / Groovy / Scala を見ていて、Groovyの次はScalaだ的なことが書いてあったので、多言語への挑戦だ*1!ということで、Groovyの次はScalaあたりに手をつけてみる。 ここやここによると、GroovyやJRub…

Re:アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法

404 Blog Not Found:アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 で面白いアルゴリズムがあった。「ある文字列のn回繰り返しを作る関数」を高速化したいらしい。 Groovyとかだと 「"..." * n」 みたいな感じで実現できるやつですね。 ちょっ…

Groovyで処理とイテレーションの分離

Groovyだと、eachなどのイテレーションメソッドが豊富なので処理とイテレーションの分離が楽にできる。 お題 例えば、 1〜10までの数値が入ったリストから繰り返し数値を取得し 出力するプログラムを完成させよ。ただし、数値が5の時は表示しないこと。 なん…

Re:タブ区切りデータの処理

お題: Server error 投稿: Server error いまさら投稿してみた。分かりやすく書いたつもりです。 ポイント ヘッダとデータは #head(), #tail()を使って取得。 ヘッダごと入れ替え時は、列を1本ずつ取得してから、#transpose()で行・列を入れ替え。 用意する…