uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

2010-09-01から1ヶ月間の記事一覧

Emacsテクニック・バイブル

このところ、「Emacsテクニック・バイブル」の本を読んでました。この本はひとことで言って、Emacsの設定集です。標準機能と、非標準機能の両方について、これでもか!というぐらいの便利設定が満載されています。Emacsテクニックバイブル 〜作業効率をカイゼ…

日本語DSLのサンプルコードがJavaOneで引用された!

こないだのエントリで書いた、日本語DSLのサンプルコードが、ただいま開催されているJavaOneにおけるPaul King氏のセッションで紹介されたとのことです。@nobeans: [DSL/Groovy]@uehajのDSLがJavaOneで晒された瞬間 URL #javaonejp2010-09-24 09:13:59 via Y…

クロージャの合成

Groovy Web Consoleを見ていて気づいた事ですが、Groovy 1.8ではクロージャに対する演算子>で関数合成ができるようになってますね。 def twice = { a -> a * 2 } def plus3 = { a -> a + 3 } def t1 = twice >> plus3 def t2 = twice << plus3 assert t1(1) …

Groovyで日本語DSL再び(+GEP3の解説)

注意:以下の内容はGroovy 1.8のβ(9/19時点のtrunk)で試した結果を元にしています。最終版では異なってくる可能性があります。前に「Groovyの日本語DSL」という記事を書きましたが、前に紹介したGEP3の機能(Groovy 1.8系でのみ利用可能)を使って、括弧やピリ…

undo/redoがソースコードの履歴管理になればいいんじゃね

エディタのundo/redoというのはソースコード履歴管理システムの一種です。Emacsにはundo-tree.elというのがあるのですが、これはEmacsでのundo-redo履歴を可視化してくれます。これは例えば、gitの以下のような履歴ツリーというかDAGと同種のものです。われ…

括弧を減らせ…括弧ゴルフwith Groovy:結果0個

旧聞に属しますが、ちょっと前に流行った括弧ゴルフ(括弧をなるべく使わずに階乗を計算するやつ)をgroovyでやってみました。 a = args as List a += '1' a.putAt 1, 'x' a -= 'x' s = a as String c = s.chars c.putAt 0, " " minus1 = -1 c.putAt minus1, "…

GEP3の例

Groovy 1.8ではGEP3という機能拡張が予定されていて、それは何かと言うとカンマや括弧の解釈の優先度とか省略ルールを変えることで、「メソッド呼び出しっぽくなく」英語のようにメソッドが呼べるようになると言うものです。以下、glaforge氏による実行可能…