タグ

ブックマーク / modegramming.blogspot.com (5)

  • MindmapModeling「日本は「シェールガス革命」の恩恵を受けることができない?」

  • Scala Tips / Seq, Function1, PartialFunction, Option

    Scala Tips / Seq, Function1, PartialFunction, Option MapがFunction1かつPartialFunctionというのが案外盲点になりますが、SeqすなわちList, Stream, VectorもFunction1かつPartialFunctionというのも見過ごしがちです。 以下の関数fを考えます。「Intを引数に取りStringを返す関数」を第一引数に、Int値を第二引数に取り、Int値に対応するStringを返します。 def f(a: Int => String)(b: Int): String = { a(b) } 準備Seqの例としてListを定義します。 scala> val l = List("zero", "one", "two", "three") l: List[java.lang.String] = List

    xef
    xef 2012/11/19
  • ScalaTips / Map, Function1, PartialFunction, Option

    ScalaTips / Map, Function1, PartialFunction, Option クライアントから受け取ったリクエストや定義ファイルの情報などをMapに格納して、プログラム内で持ちまわることはよくあります。 このような場合、以下のように関数の引数にMapを渡します。 def f(config: Map[String, String]) { println(config("name")) println(config("url")) } 以下のようなMapがある場合: scala> val map = Map("name" -> "Taro", "url" -> "http://www.example.com") map: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map(na

    xef
    xef 2012/11/19
  • Scala Tips / Streamで脱出

    関数型プログラミングでは、遅延評価を用いて大量データを処理するのが定番のテクニックになっています。パズルを解く問題のアルゴリズムによく出てきますね。 ただ、業務アプリケーションではパズルを解くようなロジックを書くことは稀なので、こういったテクニックの存在は知っていても、なかなか使う機会はないのではないでしょうか。 とはいえ、この手のテクニックの引き出しはできるだけ多いにこしたことはありませんし、来るべきメニーコア時代の並列プログラミングでは必須のテクニックになりそうな予感もあります。このため、機会があれば使って慣れておくのが得策ですが、これに適した普段使いできるテクニックが欲しいところです。 問題関数fは引数のIntをそのまま返す関数です。実行の確認をするためにprintln関数で、受け取ったIntをコンソールに表示します。 val f = (x: Int) => { println(x)

    xef
    xef 2012/11/08
  • Scalaへのアプローチ

    4月29日(日)にニコニコ超会議 2012の超エンジニアミーティングのScalaユーザーグループのコマで「Scalaでプログラムを作りました」のタイトルでお話をさせていただきました。 当日使用したスライドは以下のものです。 http://www.slideshare.net/asami224/scala-12749382 セッションの目的は、JavaなどのOOPをやっていて、Scalaをこれから始めたい人向けの情報提供です。 大きく以下の情報を提供しています。 Scalaの使い所 Scalaプログラミングの魅力 ボク自身は最近はScalazでの型クラスベースのMonadicプログラミングに凝っているので、Scalaプログラミングの面白さというと、このあたりの紹介をしてみたくなるわけですが、これから関数型プログラミングを始める人には、かなりハードルが高い内容でセッションの趣旨と合いません。

    Scalaへのアプローチ
    xef
    xef 2012/05/02
  • 1