最近いろいろあってあまりblog書けてないです、こんにちは。 そんなことはどうでもいいですね、さっさと標題の話に入りましょう。 10ヶ月くらい前に、以下のような記事書きましたが Scalaでtraitにメソッド追加するとバイナリ互換壊れるけどabstract classだと壊れないという例 Scala2.12で、Java8のinterfaceのデフォルトメソッド機能使うようになったら変わるんでしょうか。 最近のScala2.12のM4やM5あたりから、traitでJava8のデフォルトメソッド使ってエンコードするようになってきたので、改めて、以前使ったプロジェクトをScala 2.12.0-M5に変えて試してみました。 結論としては、(少なくとも以前実験したパターンでは) バイナリ互換壊れませんでした!!!めでたい??!!! *1 https://github.com/xuwei-k/bi
"新しい" とは、今まで全部無名classにコンパイルしてたラムダを、invoke dynamic使って動的に生成するようになるとかそういうやつ。 ラムダ以外の最適化もやってるようですが?詳しくは知りません。 Scala 2.12から正式に入るらしいですが、(これ書いてる時点から見て)つい昨日くらい(2015/06/25)に出たScala2.11.7でも、明示的にオプションを指定すれば、実験的オプションとしてですが、使えるそうです。 内部の仕組みは、以下のScaladays2015のスライド見るとか、あとは各自ググってください http://downloads.typesafe.com/website/presentations/ScalaDaysSF2015/T2_Rytz_Backend_Optimizer.pdf 公式に書いてありますが、2.11.7においてJava8のバックエンドを
あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。
Clojure 2024 Jordan Miller discusses the evolution of the Clojure ecosystem, from Rich Hickey's initial vision tackling complexity to its current status as a mature enterprise solution. He explains key philosophies, highlights pivotal moments like the "Simple Made Easy" talk, and showcases the vibrant Clojure community and its innovative tools.
プログラミング言語Scala開発チームは4月21日、最新版となる「Scala 2.11.0」をリリースした。小型化、高速化、安定性の強化の3つにフォーカスして開発したもので、Java 8の実験的サポートも追加されている。 Scalaはオブジェクト指向言語と関数型言語の両方の特徴を備えるプログラミング言語で、Scalaで実装されたコードはJava仮想マシン上で動作する。バイトコードレベルでJavaと互換性があり、Javaと組み合わせて利用することが可能。パターンマッチ、並列コレクションなどの特徴を持つ。 Scala 2.11.0は2013年1月に公開されたバージョン2.10に続くリリースとなり、600以上のバグを修正した。Java 6をターゲットとし、Java 8は実験的サポートとなる。 コンパイラの性能強化が行われており、インクリメンタルコンパイルに新スキーマを導入した。精度を維持しつつ、
https://github.com/xuwei-k/Scala2Java8 例は、README見てください。 ちょっと前にtweetしましたが、Scala2.11.0-M3からそれなりにJava8に対応したようなので、これ作っておけば、ScalaのREPLから手軽にJava8のラムダ使ったAPI試せてとても便利です。 以前 Java8 の java.util.function package と Scala の対応表 というのを書きましたが、その43個を素直にそのまま実装しました。 おそらくimplicit conversionがぶつかるので、trait分けたりしたほうがいいでしょうが、そのあたりは気が向いたらやるかもしれません。もしくはpull reqください。 以前書いたように sbtがinvokeDynamicに対応してなくて、"Unknown constant: 18" っていわ
現状*1 java.util.function packageには43個interfaceがあるようです。 http://download.java.net/jdk8/docs/api/java/util/function/package-summary.html とりあえず対応表だけ作ったら力尽きたので、後で気が向いたときに、java.util.functionの残念なところと、Scalaのspecialized annotationについて書く・・・ Java Scala BiConsumer Function2[A, B, Unit] BiFunction Function2[A, B, C] BinaryOperator Function2[A, A, A] BiPredicate Function2[A, B, Boolean] BooleanSupplier Function0
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く