shinmuro.util
camel->dash
(camel->dash s)
const->key
(const->key s & [prefix])
FOO_BAR -> :foo-bar にする。prefix があれば :prefix-foo-bar にする。
count-if
(count-if pred coll)
各要素が述語関数 pred を満たす数をカウントする。
dash->camel
(dash->camel s & opts)
lisp ライクな命名をキャメルケース化する。オプションで :lcc を指定すれば先頭のみ小文字にする。
[例]
(dash->camel "one-two-three")
;=> "OneTwoThree"
(dash->camel "one-two-three" :lcc)
;=> "oneTwoThree"
domap
macro
(domap seq-exprs & body)
map 版 doseq。複数のシーケンスをバインドさせた時、全ての組み合わせを行うのではなく、
map と同様に先頭から順に処理し、一番短い所で終了する。残りのアイテムは無視する。
intable?
(intable? n)
数値 n が小数部を含まなければ true を返す。
invoke-method
(invoke-method target meth & args)
clojure.lang.Reflector/invokeInstanceMethod の Clojure 関数版。
例外も少し分かりやすくしているつもり。
map->vec
(map->vec m keyseq)
マップエントリを keyseq で指定した順のベクタに変換する。
mapall
(comp doall map) と同じ。map のように複数シーケンスを副作用を伴いながら
並列で進めたい場合に使う。doseq も複数シーケンスは対応しているが
シーケンス数 * 各要素数で進む為用意。当然 lazy-seq ではなくなる。
戻り値は map の結果シーケンスを返す。
maprun
(comp dorun map) と同じ。map のように複数シーケンスを副作用を伴いながら
並列で進めたい場合に使う。doseq も複数シーケンスは対応しているが
シーケンス数 * 各要素数で進む為用意。当然 lazy-seq ではなくなる。
戻り値は dorun により常に nil を返す。
replace-val
(replace-val m keyseq v)
map データで keyseq 中に指定されている key の値を v にする
tz-millis
(tz-millis)
user.timezone システムプロパティで取得できる時差をミリ秒で返す