タグ

scalaに関するKinjouJのブックマーク (30)

  • Scalaのコンパイルを3倍速くした話

    11. hprof: JVM標準 プロファイラ • jvmオプションつけてsbt compile • 結果はjava.hprof.txtに出力されま す $ sbt -J-agentlib:hprof=cpu=samples,depth=5 clean compile 12. 結果見る • depth=5で荒い解析 • クラスのロードが大量にされている……? rank self accum count trace method 1 12.04% 12.04% 2158 300093 java.util.zip.ZipFile.getEntry 2 9.90% 21.95% 1775 300065 java.lang.Throwable.fillInStackTrace 3 7.21% 29.16% 1293 303874 java.lang.Class.forName0 4 5.40% 3

    Scalaのコンパイルを3倍速くした話
  • 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アプリケーションのエラー処理を綺麗に書く - はこべにっき ♨
  • Scala の implicit parameter は型クラスの一種とはどういうことなのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    なんか型クラスとか言うと型の怖いひとたちが怖い話をワイワイしてるイメージがありますよね。わたしはあります。「で、それって何がうれしいのよ」とか、そういう話はあまりされていないような印象がありますね(あくまで印象です)。その上 "Scala の implicit parameter は型クラスの一種" とか言われると「暗黙的な引数がなんで型クラスの一種なんや!!!意味がわからん!!!!」となります。わたしはなりました。 というわけでそのへんについて勉強したので書きます。 そもそも型クラスってなんや Haskellとかにあるやつですね。アドホック多相を実現するもの、らしいです。すごい、いきなり意味がわからない。 というわけで、まずは「アドホック多相ってなんなの」という話からして行きます。 さて、まずは「多相」から行きましょう。この文脈で言う多相とは、簡単に言えば「引数にいろんな型を取れる」とい

    Scala の implicit parameter は型クラスの一種とはどういうことなのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • Scala Style Guide リーディングメモ - seratch's weblog in Japanese

    Scala Style Guide http://docs.scala-lang.org/style/ Overview Scala では(Java との)相互運用を容易にするために Java に似たしきたり・やり方になる傾向がある Java だけでなく Standard ML・Haskell・C#・OCaml・RubyPython の慣習・イディオムを取り入れている Indentation ソースコードのインデントはスペース2つ Scala ではかなり多くのネストしたブロックを書く Line Wrapping 一行が読めないくらい長くなったら行を折り返す(長さは80文字以上の任意の値でOK) 以下のような pipeline operator でのやり方は望ましいが、必ずしもそれが実務的なやり方とはいえない implicit def any2PipelineSyntax[A](a: A)

    Scala Style Guide リーディングメモ - seratch's weblog in Japanese
  • ScalaのUnitってなによ。 - Liquidfuncの日記

    戻り値で指定されるUnit object HelloWorld { def main(args: Array[String]): Unit { println("Hello, World") } } 関数型言語の関数について 関数型言語の「関数」ってのは、数学的な関数のことを意味します。C言語とかの関数(Javaで言うメソッド)とは別物と考えた方がわかりやすいです。 数学的な関数とは? 数学的な関数とは、必ず値が返ってくる式のことです。たとえば1 + 1は2です。2という値が返ってきます。しかしC言語やJavaの場合、引数に1と1を渡しても、ただ出力するだけに使われると戻り値はありません。voidとなりますよね。 数学的な関数は「必ず戻り値がある」のです。 じゃあUnitってなによ。 Scalaはオブジェクト指向もとりいれたユニークな言語。 純粋な関数型言語ならば「戻り値がない」はありえな

    ScalaのUnitってなによ。 - Liquidfuncの日記
  • Scalaで型クラス入門 - still deeper

    型クラスについてつらつら考えていたことをまとめておきます。マサカリ歓迎。 型クラスって? 型クラスとは一言でいうと。 アドホック多相 を実現するもの です。モから始まる名状し難いあれとは直接は関係ありません。 ではアドホック多相とは何かというと 異なる型の間で共通したインターフェースでの異なる振る舞いを 定義済みの型に対して拡張する ような多相のことです。 異なる型間での共通したインターフェースでの異なる振る舞い Javaの継承やインターフェース、Scalaのtraitを用いることで、異なる型間での共通したインターフェースを管理することができます。 trait SomeTrait { def someMethod(): String } class Foo extends SomeTrait { def someMethod(): String = "foo" } class Bar ex

  • ScalaでJava EE 6(JAX-RS+EJB+JPA) - CLOVER🍀

    *JAX-RSの部分を@emaggameさんからご指摘いただいたので、修正しました JPAをちょこちょこ触ってきましたが、そろそろEE系のものも使ってみた方が面白いかなぁと思い、これまでずっと手を出してこなかったJava EEに踏み込んでみることにしました。 使うアプリケーションサーバは…やっぱりJBoss ASかなぁ。あと、WildFlyは開発中ですし、素直にJBoss AS 7にすることにします。 言語は、Scalaで! Scalaを使うなら他のフレームワークあるじゃん?って意見もあろうかと思いますが、仕事上はこっちの方が近いので、Java EEにも少し触れていこうと思うのです。 なので、Scalaを使うのは完全に趣味ですが。 JBoss AS 7のインストール オフィシャルサイトから、アーカイブをダウンロード。 JBoss Application Server http://www.

    ScalaでJava EE 6(JAX-RS+EJB+JPA) - CLOVER🍀
  • Scalaスタイルガイド — Scala Style Guide v1.2.5 documentation

    Scalaスタイルガイド¶ EPFLの提供する公式スタイルガイドや,Artimaのようなコミュニティサイトによる非公式ガイドの代わりに,殆どの場合に従うべきScalaのスタイルにおけるガイドラインの概略を示す事を意図してこの文書は作られました。このガイドでは,なぜそのスタイルが推奨されるのか,またその代替案がどのようにしてそのスタイルに関連するのかを,できる限り多くの箇所で詳細に記述するよう努めています。他の全てのスタイルガイドと同様に,この文書もいずれ破られるルールの一覧として扱ってください。ここで提示するスタイルよりも好ましい別のスタイルがきっと現れるはずです。 コンテンツ:

  • Java 8 vs Scala: 特徴を比較する

    Java 8はついにラムダ式を導入します。ラムダ式自体は2009年からProject Lambdaで利用することができました。当時はラムダ式はJava Closuresと言われていました。サンプルコードを紹介する前に、ラムダ式がJavaプログラマにとってなぜ歓迎すべき機能なのかを説明しましょう。 なぜラムダ式を使うのか ラムダ式の一般的な使い方はGUI開発においてです。一般的に、GUIプログラミングではイベントと結びつく振る舞いを解決する必要があります。例えば、ユーザがボタンを押したとき(イベントが発生したとき), プログラミングは何らかの処理を実行する必要があります。例えば、Swingでは、次のコードで示すようにActionListenersを使います。 class ButtonHandler implements ActionListener { public void actionP

    Java 8 vs Scala: 特徴を比較する
  • Effective Scala

    Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) [translated by Yuta Okamoto (@okapies) and Satoshi Kobayashi (@scova0731)] Table of Contents 序章 書式: ホワイトスペース, 命名, インポート, 中カッコ, パターンマッチ, コメント 型とジェネリクス: 戻り型アノテーション, 変位, 型エイリアス, 暗黙 コレクション: 階層, 使う, スタイル, 性能, Java コレクション 並行性: Future, コレクション 制御構造: 再帰, Return, forループと内包, require と assert 関数型プログラミング: 代数的データ型としてのケースクラス, Option, パターンマ

    Effective Scala