2015年3月8日のブックマーク (10件)

  • Scala 2.11.0で標準ライブラリから分離されたライブラリのjarファイル - kmizuの日記

    今日のScala勉強会第124回 in 郷で話題に出てたことの備忘録。Scala 2.11で、scala.util.parsing.combinatorとscala.xml、scala.util.continuationsが標準のライブラリから分離されたのだが、これを今まで通りに使うにはどうすればいいのか。実は、分離されたライブラリの内、前者二つは以下に https://oss.sonatype.org/content/repositories/releases/org/scala-lang/modules/ continuationsは https://oss.sonatype.org/content/repositories/releases/org/scala-lang/plugins/ に入っているので、これらを今まで通りに使うにはsbtの設定ファイルに libraryDepen

    Scala 2.11.0で標準ライブラリから分離されたライブラリのjarファイル - kmizuの日記
    soy-curd
    soy-curd 2015/03/08
    “libraryDependencies ++= Seq( "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.1", "org.scala-lang.modules" %% "scala-xml" % "1.0.1", "org.scala-lang.plugins" %% "scala-continuations-library" % "1.0.1" )”
  • ScalaでWebアプリケーションのエラー処理を綺麗に書く - はこべにっき ♨

    Play Frameworkにおいて、POSTリクエストから得られたbody中のパラメータをもとに何か処理をするというよくあるコードを、ちょっと整理して見やすくする方法を学んだのでメモがてら御シェアさせていただきます。Playのリクエストハンドラを書くときに頻繁に現れたので、例がPlayのコードになっているけど、内容的にはScala全般的な話だと思う。Scalaプロみたいな人にはまったく新しいことはないと思う。 題と関係ないけど、YAPCScalaの話をするかもしれません。言語自体の話よりかは採用理由とか開発フローの話を、これまでのPerlでのWeb開発を踏まえて話す感じになりそう。Scala In Perl Company : Hatena - YAPC::Asia Tokyo 2014 さて、題ですが、話題の対象になるのは以下の様なPlayFrameworkのコードです。 def

    ScalaでWebアプリケーションのエラー処理を綺麗に書く - はこべにっき ♨
    soy-curd
    soy-curd 2015/03/08
    “場合”
  • breezing NumPy-bration | ADN LAB's Blog

    soy-curd
    soy-curd 2015/03/08
  • Scala(スカラ)の紹介 (上) | ADN LAB's Blog

    こんにちは、k_oomoriです。今回は、タイトルの通りプログラミング言語Scalaについて書いてみたいと思います。 1/俯瞰風景 早速ですが、Scalaの特徴を俯瞰していきましょう。 ・オブジェクト指向と関数型のハイブリッド言語である Scalaは、関数型言語とオブジェクト指向(命令型)言語の特徴を統合したマルチパラダイムなプログラミング言語です。どちらのスタイルを用いるかはプログラマに委ねられており、関数型言語にすでに親しんでいる人はvalやイミュータブル(不変)オブジェクトを用いて関数型の記述を行えばいいし、命令型の方が適している問題に対してはvarとミュータブル(可変)オブジェクトによる命令型の書き方ができます。 ・静的 型月 型付け言語である 静的な型システムを持っているため、コンパイル時(というかIDEの力を借りればコーディング時)に型に関するエラーを確実に検出できます。さらに

    soy-curd
    soy-curd 2015/03/08
  • ScalaでFutureとEitherを組み合わせたときに綺麗に書く方法 - xuwei-k's blog

    組み合わせるとはつまりアレのことを書くのですが、一応それほど前提知識無くても理解できるように書いてみます。さて、なぜいきなりEitherとFutureか?というと play2とか使ってると、Futureがよく出てくる Futureをそこら中でAwaitしたらFuture使う意味がないので、Future[A]をmapやflatMapなどでどんどん連鎖させて、メソッドの型にFutureが大量に出現! Futureは非同期に行われる処理であり、そこで例外発生したら、その中に例外を含むしかない(単純に例外投げるわけにはいかないというか不可能) Scala標準ライブラリのFutureは、Throwable型で例外を保持できるようになってる 逆にいうと、Throwableでしか保持できない 例外の種類が多くなってきて、プログラムが複雑になった場合、Throwableではなくもっと限定された独自のエラー

    ScalaでFutureとEitherを組み合わせたときに綺麗に書く方法 - xuwei-k's blog
    soy-curd
    soy-curd 2015/03/08
  • Scalaでの例外処理 - Either,Option,util.control.Exception - ( ꒪⌓꒪) ゆるよろ日記

    今日はScalaの例外処理について解説しますよ。 基 - try,catch,finally 例外処理の基は、try,catch,finallyです。これはJavaと同じですね。 ただし、Scalaでのtry,catch,finallyは値を生成します。つまり、実行されたブロックの値が評価されます。 scala> val n = try{ "99".toInt } catch { case e:Exception => -99 } n: Int = 99 scala> val n = try{ "foo".toInt } catch { case e:Exception => -99 } n: Int = -99 上記のように、catch節には "case e:Exception => ..."のようなパターンマッチを書くことで、対応する例外の型に応じて補足することができます。try,

    Scalaでの例外処理 - Either,Option,util.control.Exception - ( ꒪⌓꒪) ゆるよろ日記
    soy-curd
    soy-curd 2015/03/08
  • ScalaのOptionステキさについてアツく語ってみる - ( ꒪⌓꒪) ゆるよろ日記

    今日は、ScalaのOptionの使い方について解説しますよ。OptionはScala使いにとってはなくてはならないものです。これを覚えてしまうと他の言語でもOptionを作りたくなる、かもしれない? Optionってなに? Option型は、値があるかないか分からない状態を表すものです。「Maybeモナド」とか言ってしまうとアレですがまぁそんなようなものらしいです。 Optionの定義 まずは、Optionの定義から見てみましょう。Option型は、抽象クラスOption[+A]と、Option[A]を継承して値がある場合のSome[+A]型とNoneオブジェクトがあります。 Option - Scala Standard Library API (Scaladoc) 2.10.0-20120530-022829-8d38079ab4 - scala.Option // Optionの抽

    ScalaのOptionステキさについてアツく語ってみる - ( ꒪⌓꒪) ゆるよろ日記
    soy-curd
    soy-curd 2015/03/08
  • 圏論とかモナドなんて簡単だからscalaを使って説明してみた - だらだらしてたいなぁ

    はじめに 関数型といえばモナド、モナドといえば難しいという事が巷で言われていますが、いきなりモナドを理解しようとするから難しく思えるだけで、圏論から順序を追って理解していけば全然難しく無いんだよって事を分かって貰えればいいなぁと思い書いて見ることにしました。 ただ、圏論といっても適用範囲がとっても広く、応用編になると分けわかんなくなってくるので、ここではプログラミング分野に特化したFP(functional programing)圏論*1について書きます。 また、説明を簡単にする為に細かい部分をいろいろ省略しています。学術的な定義としては正確ではないので、このエントリの説明は大体合ってる位の気持ちで読んでくださいね。 尚、ぼくは圏論の詳しい事はさっぱり分からないので、学問的な話を振られても回答できませんキリッ 圏ってなんなの? 圏論と言えば、圏です。 圏って何なのかというと、対象(obje

    圏論とかモナドなんて簡単だからscalaを使って説明してみた - だらだらしてたいなぁ
    soy-curd
    soy-curd 2015/03/08
  • バカ向け言語 Scala - だらだらしてたいなぁ

    なぜScalaがバカ向けなのか。 ぼくの経験を元に、バカ向け言語と非バカ向け言語を比較しながら見て行きましょう 非バカ向け言語 C プログラマーとして最初に携わったのがC言語です。 それは以下のようなものでした。 何十ものファイルにまたがるグローバル変数 緻密な制御が必要であるにも関わらず、無秩序に取得/開放が行われているメモリー管理 このような複雑な構造を、ぼくのようなポケコン並の処理能力しか持たないバカに把握可能でしょうか。もちろん不可能です そこで、次のようなコーディングを心がけました。 グローバル変数を使わず、関数に引数を定義して渡す メモリーの取得/解放を同一ファイル内に限定する これで、メモリーや変数参照の影響範囲を限定し、ぼくのようなバカでも理解できるようになります。 ですが、わざわざそんな事をやらなくても全てを理解できるエリート様達は、 「なぜ引数で渡すんだ。グローバル変数

    バカ向け言語 Scala - だらだらしてたいなぁ
    soy-curd
    soy-curd 2015/03/08
  • Scala Optionメモ(Hishidama's Scala Option Memo)

    概要 何かの処理結果(オブジェクト)を返すメソッドにおいて、処理できなかった時にJavaではnullを返すようにする事がある。 しかしnullだと、そのまま使うとNullPointerExceptionになってしまう。 Scalaでは、そういう時にOptionクラスを使う。 Optionクラスの子クラスにはSomeクラスとNoneオブジェクトがある。 返したい値はSomeに入れて返す。 処理できなかった事を表すときはNoneを返す。 scala> def div(n: Int, m: Int) = { | if (m != 0) Some(n / m) else None | } div: (n: Int,m: Int)Option[Int] scala> div(10, 5) res1: Option[Int] = Some(2) scala> div(1, 0) res2: Optio

    soy-curd
    soy-curd 2015/03/08