読者です 読者をやめる 読者になる 読者になる

No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

Groovy

GroovyでMarkdownパーサーを作ろう #4「Headers(見出し)の実装」その2

このシリーズの一覧へ Groovy! (挨拶)どうも、ふも(@fumokmm)です。 はじめに さてそれでは、前回の続きで、Headers(見出し)の具体的な実装に入って行きたいと思います。 一行ずつ処理する 前回までは、ファイルから読み取った内容を一気にHTMLのBODYタグに…

GroovyでMarkdownパーサーを作ろう #3「Headers(見出し)の実装」その1

このシリーズの一覧へ Groovy! (挨拶)どうも、ふも(@fumokmm)です。 はじめに さて、今回から具体的な変換処理の実装に入っていくわけですが、いざ実際にコードを書いていこうとすると色々と下準備が必要になってきそうです。ゆっくりやっていきたいと思いま…

GroovyでMarkdownパーサーを作ろう #2「HTML出力部分の作成」

このシリーズの一覧へ Groovy! (挨拶)どうも、ふも(@fumokmm)です。 はじめに さて、それでは早速コードを書いて行きたいと思います。といってもまだ、Markdownの変換ロジックには入りません。 今回は設定ファイルを読み込んで、その内容をプレーンなHTMLに…

GroovyでMarkdownパーサーを作ろう #1「名前決め」

このシリーズの一覧へ Groovy! (挨拶)どうも、ふも(@fumokmm)です。 はじめに 最近がっつりとブログを書いている時間がないので、先にやりたいことを決めて、ちょっとずつその軌跡を記録していく感じで記事にしていこうと思います。だいたい一つの記事が3分…

GroovyでMarkdownパーサーを作ろう

GroovyでMarkdownパーサーを作ってみよう。 GroovyでMarkdownパーサーを作ろう #1「名前決め」 - No Programming, No Life GroovyでMarkdownパーサーを作ろう #2「HTML出力部分の作成」 - No Programming, No Life GroovyでMarkdownパーサーを作ろう #3「Hea…

Re:3年間の進歩(10分でコーディング)

Groovy! (挨拶) はじめに id:uehajさんが、3年間の進歩 - uehaj's blog で楽しそうなお題を解いていたので私もやってみました。こういう三年越しの計画とかっていいですね。昔自分で解いたお題を今の知識で再トライするとか素敵です。 お題 あなたはこれから…

JLineの最小サンプル in Groovy

はじめに Groovy! (挨拶)突然ですが、 航海日誌: 2012-01-09: [Scala][Java] JLineの最小サンプル をGroovyでも書いてみました。 JLineは、コンソールアプリケーションにおいてユーザの入力の編集と読み込みを行うJavaライブラリです。 タブ補間、コマンド履…

メタプログラミングGroovy入門

Groovy!(挨拶)最近Groovyであまり遊べていないfumokmmです。G* AdventCalender2012の10日目ということで、久々に記事を書かせていただいております。 せっかくの機会なので、Groovyでメタプログラミングする際のとっかかり部分をまとめてみました。自分の…

Project Euler Problem 3 を解いてみた

問題 The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? Problem 3 - Project Euler 13195 の素因数は 5、7、13、29 である。 600851475143 の素因数のうち最大のものを求めよ。 Problem 3 -…

GroovyでJavaのpackage-info.javaを一括生成するスクリプト(二番煎じ)

元ネタ RubyでJavaのpackage-info.javaを一括生成するスクリプト - tbpgの技術メモ GroovyでJavaのpackage-info.javaを一括生成するスクリプト - 日々常々 はじめに id:tbpgさんのRuby記事を見て、Groovyで解こうかなと思っていたら、id:irofさんに先を越さ…

Project Euler Problem 4 を解いてみた

問題 A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 99.Find the largest palindrome made from the product of two 3-digit numbers. Problem 4 - Project Euler 3桁…

Project Euler Problem 22 を解いてみた

問題 Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabetical value for each name, multiply this v…

Groovyによるうるう年チェック

はじめに Javaによるうるう年チェック - お仕事の備忘録みたいなもの で画期的なうるう年判定を行っていた。 それは、 java.util.Calendar#getActualMaximum(Calendar.DAY_OF_YEAR) を使うというもの。 Calendar#getActualMaximum Calendar#DAY_OF_YEAR この…

Groovyで既存クラスのasTypeをOverrideする

はじめに Groovyでは as演算子 を利用するためには #asType(Class) メソッドを実装すればよい。既存クラスには既に #asTypeメソッド が実装されているため、通常あまりいじることはない(と思われる)のだが、とある事情でいじる必要が出てきた。その際、ちと…

お題:ポーカーをGroovyで解いてみた

お題 第一回 オフラインリアルタイムどう書くの参考問題 #勉強会 #Ruby #C - Qiita 問題 ポーカー5枚のカードを示す文字列を入力とし、ポーカーの役を出力せよ。 ただし: 一枚のカードは、スートを表す文字+ランクを表す文字列 で構成される。 スートを表す…

"fizzになる数字をn個挙げる"をGroovyで無限リストと遅延評価を駆使して

cf.mike、mikeなるままに…: "fizzになる数字をn個挙げる"をGroovyで解説は後日追記します。

GroovyとClojureでunlessを書いてみた

Groovy!(あいさつ) Clojure!(あいさつ)今回はClojureのマクロの練習も兼ねて、unlessを書いてみました。 unlessはifの逆です。(つまり、条件が偽なら実行するやつですね) まずはClojure test-isでテストなども書いてみました。 マクロって素敵。 次はGroov…

Groovyで関数型を意識したFizzBuzzを書いてみた

はじめに なるべく関数型を意識して書いてみました。 なんとか140文字に収めることができました。 a={n,s->['']*n+s};f={n->[0..n,a(3,'fizz')*n,a(5,'buzz')*n].transpose().collect{i,f,b->[f,b].any()?f+b:i}};f(100).drop(1).each{println(it)}2012-05-1…

javaとかScalaで全角を半角に変換する方法をGroovyでもやってみた

はじめに javaとかScalaで全角を半角に変換する方法 - ブログなんだよもんをGroovyでもやってみた。 元記事でも触れられておりますが、確かにこういう処理は再発明はしたくない。 ソース Groovyの場合、Grape(@Grabアノテーション)でMavenリポジトリなどから…

Groovyのチートシート

はじめに この記事は Groovyで頻出なコードの書き方のチートシート - No Programming, No Life からの転載です。 Groovyで頻出なコードのチートシート集です。 動作確認はGroovy Version: 1.8.6 JVM: 1.6.0_31 Vendor: Apple Inc. OS: Mac OS Xにて。 リスト…

GroovyのDSLとかに使えるかもしれない小ネタ:連なった括弧

こんな感じで沢山クロージャを受け取るようなメソッドを書くと {} {} {} のように連なって中括弧が書ける。

私がGroovyを好きな9つの理由 2011年版

ぐるーびーたんと本 by id:torazuka はじめに G* Advent Calendar 2011 12/12(12日目)に参戦ということで。 そろそろGroovyについて語っておくベキかなと思ったのであらためて書いてみます。私なりの、Groovyを気に入っている理由を9つほど述べてみたいと…

Groovyでバブルソートを再発明してみた

車輪の再発明シリーズ!とりあえずバブルソート。 繰り返しはクロージャで、判定結果は畳み込み(inject)などを駆使してみた例。 効率?そんなの気にしちゃいかんです。

GroovyのMarkupBuilder用の文字列をXMLから生成するクラスを書きました

はじめに GroovyにはMarkupBuilderというのがあって、GroovyのDSLを用いて簡単にXML(などのマークアップランゲージ全般)を作れるというもの。このブログでも前にこれとかこれとかで記事を書いています。さて、今回はこの逆をやってみようという話です。つま…

Groovyでファイルツリーを巡り、最初に見つかったファイルを返却するメソッド書いたよ

はじめに GroovyにDirectory.EnumrateFiles("hogeDir").First()みたいなのってあったっけ?2011-09-10 12:24:59 via Twitter for Mac @kyon_mm @kimukou_26 new File('hogeDir').listFiles({it.isFile()} as FileFilter).first() とか?2011-09-10 12:35:24 …

実行時にGroovyのバージョンを調べる

groovy:000> GroovySystem.version ===> 1.9.0-beta-3

お前に本当のカリー化を見せてやろう、Groovyで

はじめに 思いの外話題になっているようなので、Groovyでちゃんとしたカリー化をする関数を書いてみました。ちょっとタイトルはあれですがお許し下さい。 こんな感じでいいんですよね?(ツッコミ大歓迎) ここでは、addが引数を3つ取って、加算するクロージ…

Groovyでは全要素に対してゲッターを呼ぶような時は*.の*が省略できる

はじめに GPathって言うんでしたっけ?こういうの。 サンプルを見た方が早いので説明はそちらで。 コードで語る まず、こんなクラスを用意する。 class A{ def getName(){ 'a' } } class B{ def getName(){ 'b' } } class C{ def getName(){ 'c' } } そして…

Groovyでメソッドのエイリアスを作成してみた

そういやコレクションのcollectメソッドという名称がいまだにしっくりこない。このメソッド名って日本語でいえば何になるんだべ?Rubyではmapって名のほうばかり使ってる。。。2011-08-10 08:40:23 via ちーたん Groovyからの回答 なら、エイリアスを作っち…

GroovyのPowerAssertの力を享受するなら、引数は1つの方を使わないとダメらしい

論よりコード。 動作確認バージョン $ groovy -v Groovy Version: 1.9.0-beta-1 JVM: 1.7.0-internal test.groovy def str = 'abc' assert 'わざと間違う' == str 結果 $ groovy test.groovy Caught: Assertion failed: assert 'わざと間違う' == str | | | …

Mac OSXにOpenJDK7をインストールしてGroovyを実行する

こちらの@yusukeyさんの記事を参考にMac OSXにOpenJDK7をインストールしてGroovyを実行するところまで試してみたのでメモしておきます。 1.まずはOpenJDK7をダウンロード Mac OSX用のバイナリが以下から手に入るのでダウンロードしてきます。 http://code.go…

GroovyなJDK、それがGDK(java.util.List編)

このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…

Gradleで--daemonオプションを付けた際にnew Fileするとうまくいかない

はじめに --daemonオプションは高速起動するためのオプションなんですが、まだexperimental(実験段階)なんで何があっても自己責任でお願いしますということです。 $ gradle -h (省略) --daemon Uses the Gradle daemon to run the build. Starts the daemon …

Groovy v1.8.1とv1.9-beta-1の新機能をサクっと紹介するよ

このシリーズの一覧はこちら はじめに 2011-07-21にGroovy v1.8.1とv1.9-beta-1が同時リリースされたようなので、その新機能の一部をサクっと紹介します。 1. プリミティブ型演算のパフォーマンス最適化 割愛*1 2. ストリーミングビルダー(StreamingJsonBuil…

猫にもわかるSwingBuilder「frame」

このシリーズの一覧はこちら はじめに 自分のSwing力の無さに愕然としたので、ちょこちょこサンプルを作ってはまとめてゆく。故にちょこちょこ記事は加筆修正されてゆく予定です。 まず何はともあれframeを作らないと始まらないですよね、ということでframe…

現場で使えるGroovy(その3)「JavaにREPLが無いならgroovysh, groovyConsoleを使えばいいじゃない」

このシリーズの一覧はこちら はじめに ご存知の通り、JavaにはREPLがありません。しかし残念がることはありません、そう、あなたにはGroovyが付いています。 Groovyがこれらの特性とJavaとの親和性を高いレベルで同時に実現していることです。 (中略) ・Ja…

「1000以下の回文素数で最大のものを示せ」をGroovyでやってみた

はじめに 1000以下の回文素数で最大のものを示せ - Kumappusの日記 をGroovyでやってみた。 説明 素数を求める部分は素数を求める - ゲンゾウ用ポストイット-newを使わせてもらいました。 どうもソースが冴えない。もっといい方法があるはず。改造したよ!っ…

Groovyでリスト内包表記(その2)

はじめに Groovyでリスト内包表記 - No Programming, No Lifeの記事にfujwaraさんより、Scalaでは以下のようにできるけど、Groovyではどうやればできるの?とコメントをいただきました。 手始めにGroovy流に書いてみる うん、ほんとはこれでいいと思うんだけ…

Groovyの再帰処理(trampoline)についてひとつ分かったこと

はじめに Groovyのクロージャ(Closure)には.trampolineってメソッドがあって、これをうまい感じに使うと末尾再帰を最適化してくれる。 よしやってみよう では、簡単な合計値を求めるサンプルを再帰処理で。 java.lang.StackOverflowError お約束。 よし、今…

Groovyでdo-whileループを!

はじめに No 'do ... while()' syntax as yet. do ... while() 構文はまだないよ! Due to ambiguity, we've not yet added support for do .. while to Groovy 曖昧だもん、だからGroovyのサポートにはまだdo ... while()ループは追加してないんだからね! …

Groovyでスリープソートとバケットソートをやってみた

はじめに ちょっと前にスリープソートが流行ってたので、それをid:orangecloverさんが実装していたのを見て、id:nobeansさんがさらに添削していたものを参考に書いたコードが下のようになりました。 スリープソートって スリープソートって、あるデータのも…

アイコンにGroovyのロゴを追加するjarを作りました 

(◕ ‿‿ ◕)グルーべぇ 僕と契約して、Groovyistになってよ! 契約と引き換えに出来上がるのがGroovyバッジ。 契約方法 まずは、ここからjarをダウンロードして下さい。 GUIで使う jarをダブルクリックして起動 配置場所や縮小率などを調整 ウィンドウにアイコ…

I made jar that adding Groovy's logo on your icon

(◕ ‿‿ ◕)Groovee Please contract with me, and will be a Groovyist!! This is a groovy badge, generated by contract in exchange. (This is parody of Japanese Anime "Madoka Magica") How to use First, download this jar. Using by GUI Double click…

Groovyのtrampolineを使ってピラミッドのお題を解いてみた

お題はなつかしのどう書く?orgのもの。 Server error ソースコード 解説 計算したくない、再帰で書きたいと思った、そこでトランポリンですよ! ソース上に示したHINTみたいなリスト構造をつくって、エイヤで出力しています トランポリンしてるので、4段じ…

Groovyで@Categoryを使ってカテゴリクラスを作成する

@Categoryアノテーションを付けるとそのクラスをカテゴリクラスにできますよというサンプル。この機能はObjective-Cのカテゴリ由来のようです*1。 以前までは第一引数にメソッドを追加したい型をパラメータself*2として付けたstaticなメソッドを宣言してやる…

Groovyソースコード斜め読み(その3)「GDKのメソッドはDGM、DGSMに定義されている」

このシリーズの一覧はこちら はじめに org.codehaus.groovy.runtime.DefaultGroovyMethods (JavaDoc) org.codehaus.groovy.runtime.DefaultGroovyStaticMethods (JavaDoc) というクラスをご存知でしょうか。実はGDKによって拡張されたメソッドの実態はこのク…

Groovy v1.8の新機能をサクっと紹介するよ

このシリーズの一覧はこちらGroovy v1.8リリースノートより。 はじめに 待ちに待ったGroovy v1.8がやっと出ましたね!ということで、Groovy v1.8の新機能をサクっと紹介したいと思います。 Groovy v1.8は結構多くの機能拡張がなされておりますので、サラっと…

気になってたSpockを試してみた

Groovy!(挨拶) はじめに SpockはGroovy製のBDDフレームワークです。前から気になっていた*1ので是非試してみたいなと思っていたら、 id:backpaper0 さんが はじめてのSpock - 裏紙 で試していたので、私も試してみました。といってもやった内容はほぼコピ…

Groovyならインタフェースはクロージャとマップで実装できる

はじめに インタフェースは機能仕様と実装を切り離す素晴らしいアイデアです。Javaではinterfaceキーワードでこの機能を提供しています。が、Javaだとこれを実装するのが意外と面倒くさいんですよね。 Javaだとこうなる Readable r = new Readable(){ int re…

ゼロから2時間で作るGroovy DSL

はじめに この記事はA Groovy DSL from scratch in 2 hours | Groovy Zoneを意訳したものです。訳者の力不足により翻訳に未熟な部分が多数あると思われますこと、ご勘弁願います。 ゼロから2時間で作るGroovy DSL 今日はついてるな。DZoneでArchitecture Ru…