S式ソースコード検索とMongo DB(やってみたけどそんなに良くなかった)NiyarinClojure
View Slide
モチベーション例) 「Clojureのmapの引数が1つのコード例がみたい」→ 雑に”map”でコード片を検索すると目当てでないものも引っかかる・正規表現で検索・構造で検索→ S式言語ならできる
Gists的なものを作る・Gists的なソースコード片を投げるようなWebアプリ大学でDB使ったWebアプリ書けって課題がでたので作った真面目には作っていない・Clojureの式を登録して、ちょっと便利に検索できるようにする・Clojureで実装Selmer(テンプレート)Duct(フレームワーク) 余り活用していないAtaraxy(ルーティング)
構造とDBリストとかを突っ込んでそれの構造を検索したい・Mongo DB(JSONが直に使えるNOSQL)Clojureとかにもドライバが提供されているMongerRDBでもできなくはないけど
MongoDBの例リストの最初の要素がargnameのものをとってくるリストの長さがarglenのものをとってくるJavaScriptをクエリに使うこともできる※”,”がないのはClojureから呼び出しているから{“$elemMatch” {“ls.0” argname}}{“$elemMatch” {”ls” {“$size” arglen)}}
あまり楽にできなかった部分・部分的な木構造の検索ができない決められた深さのオブジェクトに対してしか検索できない・リストを全部取り出して、内部リストを”object”等の文字列に変更(+ (* 1 2) (* 3 4))[(+ “object” “object”)(* 1 2)(* 3 4)]
生前の姿 (クラウドは落とされていた)(ローカルで立ち上げてもよかったけど)
もう少しがんばってもよかった点検索がもっといろいろできたのではないか・S式パターンマッチでの検索・なにかフロントエンド
今回どういうDBがあればよかったのか・EDN登録できるドキュメント型NO SQL・クエリ言語をClojure風なやつにするクエリ言語そのものもDBに入れられるクエリ言語をクエリ言語で操作できる・パターンマッチ・部分的な木構造を検索できる
おわりまとめ・S式系言語用の検索に特化したGists的なのを考えた・Clojureで雑に実装したその他・非S式言語でもASTに落とせばなんかできるかも・EDN DBはいつかつくりたい