2013-01-01から1年間の記事一覧

Java8 の java.util.function package と Scala の対応表

現状*1 java.util.function packageには43個interfaceがあるようです。http://download.java.net/jdk8/docs/api/java/util/function/package-summary.html *1:もう仕様が完全に固まったのか、まだ変更ありえるのか?というような事情知らない

highj・・・Java8による本当の関数型プログラミング?

最近以下のようなJava8の記事Java 8を関数型っぽく使うためのおまじないをちょくちょく見かけるようになったので、自分もなにか書こうと思い、前からちょっとだけ気になっていた、highjというライブラリhttps://code.google.com/p/highj/ https://github.com…

scala.util.Try の Monad Transformer

自分で使うつもりも、pull reqするつもりもないけど、なんとなく思いついたので、EitherTとかOptionTとか見ながら真似して作った。そもそも必要なのか自分でもよくわからない。そもそもTryがモナドじゃない?としたら、Monad Transformarと呼ぶには語弊があ…

sbt で fork in Test := true にした場合にSetupとCleanupが無効になるのはsbtの仕様?

この前の続きPlay2.1.0や2.1.1で、Tests.SetupやTests.Cleanupを設定しても有効にならない件

squeryl2scalikejdbcその後

以前blogに書いたものの続きの話squeryl2scalikejdbc作り始めた

Play2.1.0や2.1.1で、Tests.SetupやTests.Cleanupを設定しても有効にならない件

表題の件にハマる 同じことにハマってる人がPlayのMLにいた∩(´∀`)∩ https://groups.google.com/d/msg/play-framework/_y1zwRBjl7A/OHWNHDN19FcJ 解決してなかった、ぬか喜びだった・・・(´;ω;`)ウッ… たぶん原因は、Play2.1.0からtestをforkしたJVMで実行…

Scala で型安全なキャスト

以下は、Scala2.9ではだめでScala2.10限定です *1 *2 *1:単にvalue classやimplicit classが問題ではなく、Manifest渡して、その型をそのまま使ってのパターンマッチが2.9では無理 *2: manifestのerasure呼べば、2.9以前でもほぼ同じことはできますが http:/…

pointがmap0という話

Applicativeの型クラスのメソッドに関する話Functional Programming in Scala の (MEAP v9時点での)Chapter12の209ページにさり気なく以下のように書いてあって

Functional Programming in Scala の感想

http://www.manning.com/bjarnason https://github.com/pchiusano/fpinscala一年ちょっと前にblog書きましたがScalaz の作者の人達が書いた "Functional Programming in Scala" という本がでるらしい14章のぞいてほぼ完成したので、感想書きます。MEAP v9の…

Scalazの微妙な型クラスたち

前からこんなissueありますがWhat to do about lawless classes?

Scalaz7 nightly の Scaladoc

実はcloudbeesでCI動いていて*1、毎回Scaladoc生成されています最近止まってしまったみたいです・・・https://scalazproject.ci.cloudbees.com/ https://scalazproject.ci.cloudbees.com/job/nightly_2.10/ws/target/scala-2.10/unidoc/index.html#scalaz.pa…

Scalaz の名前の由来

https://gist.github.com/tonymorris/5367920超適当に要約すると

Play2.1をherokuにデプロイするときに、勝手にsourceやdocのjarを作る件

Play2にはデフォルトで、本番環境のときのためのpackagingの仕組みがある。起動のためのシェルスクリプトとかも自動生成する herokuのデフォルトのScalaのbuild packは、playのプロジェクトかどうかを判断していろいろやってる 現時点では"clean compile sta…

Scalazで新しいtypeclassを追加する手順

coreに追加する場合の話 例としてHogeというtypeclassを追加する場合なにか手順抜けてたら教えて下さい。自分でも気づいたらあとで追記します

PartialFunction 直接書けるところに、match式を書く人がいる件

Scala quiz #47: What is wrong with the following fragment?{ _ match {2013-04-10 03:56:41 via Tweetbot for Mac

Json4s Monoid Instance

https://github.com/xuwei-k/json4s-monoid/blob/b81187378f62f/src/test/scala/Spec.scala上記は正しい例。以下はMonoid則を満たさない例 implicit def JValueInstance: Monoid[JValue] = Monoid.instance(_ merge _, JObject(Nil)) implicit def JValueIns…

play2 twitter bootstrap less lessEntryPoints

Play Framework(Scala)にTwitter Bootstrap(LESS)を組み込むなんとなく書き方気になったので、PathFinderのfilterを使って書き換えた

squeryl2scalikejdbc作り始めた

この前書いた squeryl2scalikejdbc の設計構想 の続きの話

ScalaでのLens実装まとめ

最近コード書いていて、若干無理に抽象化を進めたら、なんかLensが必要になったけれど、いざScalaでLensを使うとなると果たしてどれを使えばいいのかすぐに判断できなかったので、いい機会なのでまとめてみる。 「ちなみに、これ書いた時点のまとめだし、す…

sbtで複数あるmainメソッドを全部実行する方法

sbt

shapelessのexampleが失敗するらしいという話があって、それ確かめるために以前自分がScalazでやった「わざわざプロジェクト別につくって、それぞれのmainを実行するコードを生成する」という方法でexampleが正常に実行できるかを確かめる↓

Scala2.11から、case classやメソッドの22制限が緩和されるらしいですよ!

https://github.com/scala/scala/pull/2305/files 試しに引数が200個あるメソッドや、case classくらいまでならいけた。それ以上で、例えば1000くらいになると、コンパイラが変なところで落ちるか、"ClassFormatError: Too many arguments in method ..."と…

squeryl2scalikejdbc の設計構想

一気に作りあげようとしたのだけれど、結構面倒な問題に遭遇したので、一旦自分の考えをメモしてみるだけのなにか。 アドバイス募集。 追記: seratch さんからコメントもらったので参照するといいよ続き書いたよ squeryl2scalikejdbc作り始めた

json4s DynamicJValue の使い方

https://github.com/json4s/json4s/blob/3.2.1_2.10/core/src/main/scala/org/json4s/DynamicJValue.scalajson4s version 3.2.0から scala.Dynamic を使ったものが入っていたので、簡単に紹介

同じ名前のimplicit defを2つ定義してimportした場合の挙動がScala2.9と2.10で異なる件

言葉では説明しずらいので、とにかくまずは以下のサンプルコードみてください。Scala2.10では、implicit classでもimplicit defでも同じ

heroku waza

http://vimeo.com/herokuwaza

親クラスから継承したimplicit defを無効化したい場合

普通はimportで隠せますが、親クラスにあったらimportでは無効化できない(?)実際に発生したのは、specs2とnscala_timeを合わせて使った場合。

Scalaで独自のPredefっぽいものをつくって、importを極力減らすテクニック

package object使えばそれっぽいことできますが、package objectはpackage内のみなので、相対importを使うことによって、もっとひたすら簡略化するためのもの

sbt 0.13 の機能紹介

sbt

0.13.0-M1が出たので、0.12系からの違いや新機能を、大まかにまとめ。 注意 まだMilestoneなので、finalのリリースまでに細かい部分変わるかもしれません。 まだMilestoneなので、このblog書いている時点(2013-03-20)では、普通のユーザーが本格的に実用する…

northeast scala symposium 2013 の video を見た感想

http://nescala.org/ https://marakana.com/s/post/1397/2013_northeast_scala_symposium_videos まだ全部公開されてませんし、公開されたものの中でも全部見れてませんが、とりあえず見たやつだけ書きます。以下にprecogっていっぱいでてきますが、知らない…

postgres の JDBC driver の最新版がmaven centralとかにない件

追記: 解決したようです。http://central.maven.org/maven2/org/postgresql/postgresql/ https://github.com/pgjdbc/pgjdbc/issues/46以下一応最初に書いたものも残しておきます。