“[]”で囲われた文字列だけ抜き出したいな〜という処理があったので、Scalaで書いてみました。この手のってたぶんPerlとかRubyとかで書くのが王道なんでしょうけど、あいにく私はPerlもRubyもどっちも好きじゃ無いんですよ。
やりたいことの例としては、
[xxx][yyy]…………
と言った文字列の時に、「xxx」、「yyy」だけ抜き出したいと言うことですねっ。
1 2 3 4 5 6 7 8 9 |
import util.parsing.combinator._ object Main extends RegexParsers { def parse(str:String) = parseAll(rep("[" ~> "[^\\[\\]]+".r <~ "][^\\[\\]]*".r) ,str).get def main(args: Array[String]) = { println(parse("[グルメ]aa[ラーメン]喜多方ラーメン試食しました")) } } |
実質的には1行で済んでますね。Javaだとこうはいかないでしょう。これでもScalaのパーサーコンピネーター、使っております。
パースの結果はリストで得られております。
1 2 |
$ scala Main.scala List(グルメ, ラーメン) |
どうすか、Scala使ってみたくなりましたん?
毎年、WWDCはリアルタイムで状況を把握、つまり夜更かししてたんですが、今年は午前2時になる前にちょっと時間があったので、WOWWOWで録画した「ニキータ」を観たのですよ。
つまりコレ↓
でもねー。リメイク版とかは存じませんけど、私にとっては超つまんなかったの。シナリオ穴だらけだし。
それで意気消沈して寝ちまいました。
朝になってざっとチェックした結果。WWDCで発表された新言語”Swift”はさっそく気になったので、iBookで無料公開されているリファレンスブックを斜め読みしてみました。
- iOS/OSX APIを叩く部分についてメリットが明示されてないので、その辺は???
- 全般的に素直なスクリプト言語を新造したという印象。Javaに対するGroovyのように学習コストを下げる配慮が見られる
- Javascriptが文法的に微妙な部分があったりでそのまま採用できなかったので新しく作ったのかしらん
- 並行プログラミングについてはこの資料だけでは不明なので、GO言語と比べてどうなのかはわからんです
最近iOSでプログラミングしてないもので、リサーチする優先順位というか、今は興味がそれほど湧かないのが正直な感想でございました。気が向いたらいじってみます~
最近のコメント