Open2
elm-cssがベル文字を使ってCSSを組み立てている
elm-cssがベル文字を使ってCSSを組み立てている
elm-cssはCSSを吐き出すときに吐き出すCSSのハッシュ値をとってクラス名を生成することでCSSの局所性を担保している
elm-cssランタイムは変更がある度に計算せざるを得ないのでできるだけ軽くしたい
同じCSSセットを複数回使うと毎回それらのハッシュ値を計算しないといけない
ので吐き出すCSSのクラス名だけをベル文字にした文字列をキーに、ハッシュ値をバリューにすることで複数回の計算を回避している
ベル文字はあとから置換してます
文字列結合はjoinか++か
文字列を結合するにはBasics.(++)とString.joinがあります
これらはそれぞれJavaScriptの+
演算子とArray.prototype.joinになって動きます
elm-cssではあるときjoinをやめて++を使うように変更されました
elm-cssは別名文字列いっぱい結合するランタイムとも呼ばれ文字列結合を多用します。++にするとちりつもで速くなるらしいです
なんで早くなるかはわからんですがよりプリミティブに近い表現のほうが最適化が利くんじゃないんですかね
JavaScriptって不思議ですね
「String.join使うのやめようかな……」
普通のアプリケーションユースで気にするほど文字列結合はしないと思うので気にするようなことではないと思います