Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

livescriptの演算子を使って文字列や配列を操作

相変わらず頭がおかしいlivescriptさんは演算子まで使い倒して短文化を推し進めています。
知ってるとif-elseの構文がなくなったりするかも。

「*」オペレータ

常識的に考えれば、「*」オペレータは掛け算。
というわけで、まぁ次の挙動はなんとなく理解はできます。

$ echo '<[ foo bar ]> * 2' | lsc -p
#> [ 'foo', 'bar', 'foo', 'bar' ]

配列を二倍すると、配列の内容が増える。
ほかのスクリプト言語でも採用されてますし、まぁ、良識です。

では、これはどうでしょう?

$ echo '<[ foo bar ]> * ","' | lsc -p
foo,bar

なんかjoinっぽい挙動をしますね……?

Pythonでは、そういうのはなかったですが

['foo', 'bar'] * ","
#2> Traceback (most recent call last):
#2>  File "<stdin>", line 1, in <module>

Rubyでは……

 [:a, :b] * ','
>> "a,b"

あるじゃん(驚愕

「-」オペレータ

文字列から特定の文字、パターンを排除できます。

$ echo '"a0b7c46d1ef" - \b' | lsc -p
a07c46d1ef

正規表現で指定もできるとは、なんと……
アプリの性質によっては行数めっちゃ減りそうですね

$ echo '"a0b7c46d1ef" - /\d{2}/' | lsc -p
a0b7cd1ef