wisp事始め

wispとは

https://github.com/Gozala/wisp


wispは clojure syntaxを持った Javascript方言です。 あまりよくわかっていない
ですが、同様のものに clojurescriptというよりメジャーなものがあるようです。
wispと clojurescriptの違いは wispは clojureが不要ということです。
"npm install wisp"だけでインストールことができます。

セットアップ

% npm install -g wisp

Emacsユーザの方は MELPAに wisp-modeがあるのでインストールすると
よいでしょう。clojure-modeを継承しているので clojure-modeの設定を
行なっていれば同じような感じで使えるはずです。

M-x package-install wisp-mode

コード

requestを使ったサンプルを書いてみました.

(set! request (require "request"))

(request "http://syohex.org"
         (fn [error res body]
           (if (and (not error) (== (:statusCode res) 200))
             (let [re (new RegExp "href=\"([^\"]+)\"" "g")
                   matches (.match body re)]
               (console.log matches)))))

結果

% wisp test.wisp
[ 'href="https://github.com/syohex"',
  'href="https://twitter.com/syohex"',
  'href="http://www.linkedin.com/pub/syohei-yoshida/64/bb3/3b7"',
  'href="http://d.hatena.ne.jp/syohex/"',
  'href="http://search.cpan.org/~syohex/"',
  'href="http://syohex.github.io/"' ]

おわりに

個人的に Lisp風にかけるというのは大変ありがたいのですが、現状貧弱と
思われるので(ドキュメントを見る限り)なのでおすすめできるレベルではない
と思います。oreillyから clojurescriptの本が出たようなのでそれを見て、
どちらが良いか判断して、node.js等の勉強をしていきたいと思います。