scalaの文字列処理とかワンライナーについて試行錯誤したメモ

もっとこういうふうに手軽にtogetterをメモとしてつかっていいんじゃないかい(`・ω・´)と最近思う
0
po @podhmo

一方、rubyはワンライナー。cat a.dat | ruby -ne '$_.strip.split(": ").tap{|name,cls| puts "#{name}(#{cls})"}' http://tinyurl.com/3y7cj32

2011-01-03 14:11:04
Kenji Yoshida @xuwei_k

#scala もだいたい同じようなことできるんやで(`・ω・´)ていうか、こんな程度のことが、簡単にできない言語なんてあるのか? http://twitpic.com/3mmn0l http://bit.ly/hUUsEG

2011-01-03 19:15:17
拡大
po @podhmo

@xuwei_k replの中で文字列を分解して変換するならpythonでもできますよ。でも、ファイルに保存してある文字列を直接ワンライナーで変換するのは、頭をひねらないとpythonではできないんです。scalaではどうですか?

2011-01-03 21:07:08
Kenji Yoshida @xuwei_k

@podhmo たしか、 -e ってオプションで、ワンライナー書けるから、原理的は書けると思います。ただ、長さではpythonに負ける気がしますが・・・(´・ω・`)

2011-01-03 21:17:35
Kenji Yoshida @xuwei_k

個人的には、 #scala のREPL上から、 :powerとか:shとかいうオプションあって、シェルのコマンドforkできるし、結局自分はいつも #scala のREPL立ち上げっぱなしだから、大して困らない。まぁ #ruby とかの方が、手軽なのは認めるけど

2011-01-03 21:23:03
Kenji Yoshida @xuwei_k

っていうか #scala の -e ってオプション、あるのは知ってたけど、ほとんど使ったこと無いな。よく使ってる人とかいるんだろうか?なんか #scala ユーザーでも、知らない人のほうが多い気がする

2011-01-03 21:25:18
Kenji Yoshida @xuwei_k

今試してみたら、ダブルクォートエスケープしなきゃいけないっていう残念な事になったんだが・・・・(´Д`)少なくとも、windowsでは(´・ω・`) #scala のワンライナーオプション http://twitpic.com/3mnktz

2011-01-03 21:31:21
拡大
Kenji Yoshida @xuwei_k

argsで引数取得できるのか( ゚д゚ ) #scala http://twitpic.com/3mnmx6

2011-01-03 21:39:04
拡大
Kenji Yoshida @xuwei_k

http://bit.ly/hUUsEG ←これをscalaでやろうとしてあとちょっとでできない。しばらく考えたけど、なぜ上はエラーになって、下は実行出来るのかわかんね http://twitpic.com/3mny6y windowsのコマンドとして文法エラーになってんのか?

2011-01-03 22:23:15
拡大
Kenji Yoshida @xuwei_k

ワンライナーでダブルクォートをエスケープしなきゃいけないなら、1行スクリプトには向かないな・・・ #scala は。回避方法あるのか?

2011-01-03 22:28:59
Kenji Yoshida @xuwei_k

改めてゆる募: http://twitpic.com/3mnzzy/full ← なぜ上はエラーで、下は実行出来るのか? http://bit.ly/hUUsEG #scala

2011-01-03 22:32:00
拡大
Toshiyuki Takahashi @tototoshi

@xuwei_k 全体をダブルクオートじゃなくてシングルクオートで囲えばいいんじゃないの?

2011-01-03 22:32:30
Kenji Yoshida @xuwei_k

@tototoshi やってみたけど、できなかった(´・ω・`) windowsのコマンドの文法わかんね。

2011-01-03 22:34:42
Toshiyuki Takahashi @tototoshi

Scalaのワンライナー遅すぎてピザでも取りたくなるな

2011-01-03 22:35:54
Toshiyuki Takahashi @tototoshi

@xuwei_k Windowsのせいかなあ。Linuxだとscala -e 'println("hello")'とか通る。

2011-01-03 22:37:49
Kenji Yoshida @xuwei_k

まぁ結論として、 #scala のワンライナーにメリットはほとんど見当たらないってことか・・・(´・ω・`)遅いし、エスケープ必要だし RT @tototoshi Scalaのワンライナー遅すぎてピザでも取りたくなるな

2011-01-03 22:38:14
Kenji Yoshida @xuwei_k

そうみたい。windowsだと、それさえ通らない・・・ RT @tototoshi Windowsのせいかなあ。Linuxだとscala -e 'println("hello")'とか通る。

2011-01-03 22:39:46
かしまかずお @k4200jp

@tototoshi Windowsのコマンドプロンプトでは、シングルクォートはUNIX系のシェルでのような意味は持ってないですよ。単なる1文字って扱いだったと思います。

2011-01-03 22:40:02
Kenji Yoshida @xuwei_k

スペースはダブルクォートでくくるのか・・・

2011-01-03 22:42:02
Toshiyuki Takahashi @tototoshi

今まで試しにやってみるとかじゃなくて自然な流れでワンライナー書くことになったって経験あんまないかも

2011-01-03 22:42:45
Kenji Yoshida @xuwei_k

あ~ % もエスケープ必要なのか?windows上で #scala のワンライナーは絶望的だな・・・

2011-01-03 22:44:16