Gaucheのパターンマッチを使いやすくするマクロを作った。

Gaucheでもutil.matchを使えばパターンマッチができますが、括弧が多いのであまり読みやすいとは言えません。
それをなんとかしようと思い、書いてみました。

こんな感じになっています。

このマクロを使えば、階乗はこんな感じに書けます。括弧が減るので読みやすくなります。

(def fact
  0 -> 1
  n -> (* n (fact (- n 1))))

Gaucheの「pa$」は結構便利ですね。特に、述語を受け取ることが多いリスト処理関係のところで便利です。