タグ

Scalaに関するdaisuke-mのブックマーク (25)

  • Scala の省略ルール早覚え · GitHub

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    Scala の省略ルール早覚え · GitHub
    daisuke-m
    daisuke-m 2017/02/02
    分かりやすい!
  • C# 使いから見てうらやましい Java8 の default 実装の使い方 - ぐるぐる~

    Java8 から追加されるインターフェイスの default 実装ですが、C# の拡張メソッドに似てますよね。 実際、このどちらも「シンインターフェイス」を定義するだけで「リッチインターフェイス」が手に入ります。 しかし、C# の拡張メソッドと Java のインターフェイスの default 実装には、それぞれの利点と欠点があります。 拡張メソッドの利点 拡張メソッドの利点は、インターフェイスの実装者だけでなく、 インターフェイスの使用者に対してもインターフェイスの拡張が開かれている点です。 既存の型ですら、後付けでメソッドを追加することができるということです。 using System; public static class StringExtension { // インターフェイスでなくても、どんな型に対しても拡張可能 public static int ToInt(this str

    C# 使いから見てうらやましい Java8 の default 実装の使い方 - ぐるぐる~
  • IDE · playframework-ja/Play20 Wiki · GitHub

    好きなIDEで開発する version: 2012/04/22 Playで開発するのは簡単です。Playは自動的にソースファイルに加えた変更をコンパイルし、変更内容をリフレシュするので、洗練されたIDEは必要なく、単純なテキストエディタで簡単に開発することができます。 しかし、モダンなJava,Scala IDEは自動コンパイル、実行中のコンパイル、リファクタリングのアシスト、デバッギングのようなクールで生産的な機能を提供しています。 Eclipse 設定ファイルの生成 Playは単純なEclipseの設定のためのコマンドを提供します。PlayアプリケーションをEclipseのプロジェクトに変換するにはeclipsifyコマンドを使います。 ソースのjarファイルが必要ない場合は、以下のコマンドを実行します。

  • Scala Cookbook | Scala Cookbook

    Scala Cookbook http://xerial.org/scala-cookbook では、Scalaでのプログラミングについて紹介していきます。 Scalaをこれから使い始める方にはこちらがおすすめ。15分で始めるScala Scala勉強会の予定 - 日程、今後紹介する内容など Scala Cookbookに寄稿、改善に協力する レシピの追加、修正等を歓迎します。 今後追加したい・すべき内容 New Recipes

  • はてなブログ | 無料ブログを作成しよう

    わたし的棚ぼた一万円選書 急に千葉さんに手渡された封筒、開けてみたら1万円札が1枚。何ごとかと思えば、同期の出張を代わったお礼をもらったらしい。 「葵はワンオペで育児してくれたから」と半分わけてくれました。 泡銭の1万円 これはもう、わたし的1万円選書をしろという思し召しなのでは……

    はてなブログ | 無料ブログを作成しよう
  • [執筆]Scala逆引きレシピという本が出ます - 2012-06-06 - 新・たけぞう瀕死の日記

    7月に「Scala逆引きレシピ」というが翔泳社さんから発売されます。 このは、その名の通り、Scalaでプログラミングをする際に「○○したい」という疑問から実現方法を調べるためのレシピ集です。もちろんScalaの基礎知識に関するレシピも豊富に取り揃えていますが、より実用的なレシピに力を入れています。たとえば、Scala体だけでなく、以下のようなライブラリ、ツール、フレームワークなどを取り上げています。 Scala IO、Dispatch、util-eval、SJSON、scalaxbといったライブラリやツール sbtの使い方、便利なsbtプラグインの紹介 テスティングフレームワーク(ScalaTest、Specs2を中心にScalaCheckやScalaMockなどもカバー) Play 2.0、Akka 2.0を筆頭にScalatra、ScalaQuery、Casbah、sprayと

    [執筆]Scala逆引きレシピという本が出ます - 2012-06-06 - 新・たけぞう瀕死の日記
    daisuke-m
    daisuke-m 2012/06/07
    これは買う。
  • BUY 2012/04/25 - Diary of absj31

    Scalaスケーラブルプログラミング第2版 作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘出版社/メーカー: インプレス発売日: 2011/09/27メディア: 単行(ソフトカバー)購入: 12人 クリック: 235回この商品を含むブログ (46件) を見る先日の名古屋遠征に触発された部分も無くは無いが、関数型言語としてScalaもお勉強初めてみようかと、書籍ゲット。開発環境で写経しつつ、ちびちび読み進めて行ってます。(現在第2章まで済) 概念的に分かりづらい部分も出てくると思いますが、ひとまずは通しで読み進めてみようかと。深い理解はその後に改めてという感じですかね。 ※併せて『Studynote』での記録も付け始めてみました。 Scalaスケーラブルプログラミング第2版 | Studynote

    BUY 2012/04/25 - Diary of absj31
  • EclipseでScalaプログラミングを始めるための基礎知識

    EclipseでScalaプログラミングを始めるための基礎知識:スケーラブルで関数型でオブジェクト指向なScala入門(1)(1/3 ページ) 人気の「Scala」を一から学ぼう 最近、私の周りでもScalaに関する話題が増えてきました。Twitterやブログ、技術系のニュースサイトでは毎日のようにScalaに関連する話を見かけます。 また、筆者が現在携わっているプロジェクトでも実際にScalaを用いて開発しています。いままではJavaで開発をすることが多かったのですが、それよりも簡潔で柔軟性のある記述が可能であり、Scalaでの開発は非常に生産性が高いと感じています。 連載は、Scalaの特徴を紹介し、基構文や関数、クラスなど、Scalaの基的な機能について解説していきます。何らかのプログラミング言語を学んだことがあり、プログラミングの基的なことが分かる人を対象としています。特に

    EclipseでScalaプログラミングを始めるための基礎知識
  • ScalaにおけるJavaのインターフェースって?

    t_yano @t_yano Scalaについてはtraitとか構造型についていろいろ聞いてみたいことがあるんだけどとても140文字では表せないな…。まあ、スタイルというか定石とかがどうなってるのか知りたい系の話だけど。 2011-10-24 01:31:09 t_yano @t_yano なんか実装継承するケースばかりを見かけるのたけど、型を定義するためにtraitを使うとか、すべてのクラスはなんらかのtraitを型として持つべきだ派とか、あるいは逆に、すべての引数は理由がない限り構造的部分型にすべき派とか、そういう話はないんだろうか的な疑問。 2011-10-24 01:34:22 t_yano @t_yano あるいはあるクラスを受け取ると定義されている関数に、その型ではないけど事実上その方として振る舞える別の型のオブジェクトを、なんらかの方法で渡すことが可能なので、関数インタフェー

    ScalaにおけるJavaのインターフェースって?
  • SBTのEclipseプラグインを作り始めた - たけぞう瀕死ブログ

    とりあえずプロジェクトのコンテキストメニューからSBTを実行できるようにしてみました。 実行結果はコンソールビューに表示されます。 コンテキストメニューにないコマンドを実行する場合はRun SBT Commandを選択するとこんなダイアログが出てきます。実行結果は同じようにコンソールビューに表示されます。 いまのところSBTのJARファイルはプラグイン内蔵のものを使っているけど、プロジェクトのルートディレクトリにsbt-launcherのJARファイルがあったらそっちを使うようにしたほうがよさげ。 あとはSBTプロジェクトを作ったり、EclipsifyしなくてもEclipse側でプロジェクトの設定をうまいことやってくれるような機能があればよいかなと。

    SBTのEclipseプラグインを作り始めた - たけぞう瀕死ブログ
  • OptionとListとforとflatMap

    ScalaのOptionのよいところは、仕様を正確に記述できて、仕様違反の検出をしてくれる上に、プログラミングが楽になるというおまけがついているところである。一般的には正確な仕様記述とプログラミング効率は相反することが多いので、この要因が両立するというのはかなりうれしいことだ。 クラスPersonのメソッドaddressの実装は、OptionとListとforを使って無理なく1行に収まっているけど、関数型言語の技を使わないとこの分量ではすまない。このあたりも面白いので少し細かく説明したいところだけど、今回はポイントだけ。 addressメソッドのポイントは、Option[String]のListに対してfor文で「Some(s)」という受け取り方をすることで、以下の処理を簡潔に記述できるところにある。 Noneを削除する Some(s)からsを取り出す「Some(s)」によるパターンマッチ

  • 「Scalaではじめるプログラミング(工学社)」の感想 - xuwei-k's blog

    ふふふふふ(´・ω・`)例のあのじゃなくて、この↓ですよ Scalaではじめるプログラミング―「Java」「.NET」のソフト資産を生かして開発を効率化! (I・O BOOKS) 作者: 赤間世紀,第二I O編集部出版社/メーカー: 工学社発売日: 2011/06メディア: 単行 クリック: 107回この商品を含むブログ (3件) を見る 題が「Scalaではじめるプログラミング」だし、それとまえがき読むかぎり、「Scala」が主というより、「プログラミングをはじめる」のが主で、それにたまたま(?)Scala使う場合って感じなんでしょうか? インストールに関しては、(完全にWindows前提だが!!)丁寧に書いてあっていいと思います 19ページ 「UTF-8」というコードで、「BOM」(Byte Order Mark)なしでなくてはならない オプションつければ、べつにUTF-8以外で

    「Scalaではじめるプログラミング(工学社)」の感想 - xuwei-k's blog
    daisuke-m
    daisuke-m 2011/06/17
    網羅的には書けないモンだよ…。指摘に間違いはないのだろうけど、ヤリスギ感が否めない。
  • モナドはメタファーではない · eed3si9n

    2011-05-28 Scala界の関数型プログラミング一派を代表する論客の一人、@djspiewak が 2010年に書いた “Monads Are Not Metaphors” を翻訳しました。翻訳の公開は人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2010年12月27日 Daniel Spiewak 著 2011年5月29日 e.e d3si9n 訳 僕は今、約束を破るところだ。およそ三年前、僕は絶対にモナドの記事だけは書かないと自分に約束した。既にモナドに関する記事は有り余っている。記事の数が多すぎてその多さだけで多くの人は混乱している。しかも全員がモナドに対して異なる扱い方をしているため、モナドの概念を初めて学ぼうとする者は、ブリトー、宇宙服、象、砂漠のベドウィン (訳注: アラブ系遊牧民) の共通項を探す努力をするハメになっている。 僕は、この混乱した

  • implicit conversionを定義する際に最低限チェックすべきこと - ( ꒪⌓꒪) ゆるよろ日記

    軽くイラッ☆っとしたので書く。 Scalaにはimplicit conversionってのがあってまぁ知らないならググれ。で、implicit conversionを定義する際に、最低限チェックすべきたったひとつのことを書く。 「scala.Predefでimplicit conversionが定義されている型に対して新しいimplicit conversionを定義する際は、Predefで変換される型と、新しく定義する変換先の型とでメソッド名が重複しないかチェックしろ!!」 具体例で話す。scala.PredefにはStringからStringOpsへのimplicit conversion(もう長くてウゼェので以下ICな)が定義されている。StringOpsってのは文字列操作に関するわくわく便利メソッドが詰まってるtraitだ。 implicit def augmentString (

    implicit conversionを定義する際に最低限チェックすべきこと - ( ꒪⌓꒪) ゆるよろ日記
    daisuke-m
    daisuke-m 2011/05/21
    柔軟性という名の複雑性が産んだ魔物の話。
  • Scalaオブジェクトメモ(Hishidama's Scala object Memo)

    概要 Javaではstatic(静的)なメンバー(フィールド・メソッド)というものを定義できた。 静的なフィールドとは、アプリケーション内(JavaVM内)に一箇所にしか存在しないフィールド(データ)のこと。 (通常の(動的な)フィールドは、インスタンス毎にデータを保持する) Scalaにはstaticは無い。代わりにシングルトンオブジェクトを作成する機能がある。 シングルトンとは、インスタンスがアプリケーション内に1つしか存在しないこと。 クラスのインスタンスが1つしか作られないとき、その唯一のインスタンスをシングルトンオブジェクトと言う。 ※オブジェクトのメンバーはstaticメンバーの様に扱えるが、実際にはstaticではない Scalaでシングルトンオブジェクトを定義するにはobjectを使う。 classと同様に、他クラスを継承したい場合はextends、トレイトを継承したい場合

  • Scalaメソッド定義メモ(Hishidama's Scala def Memo)

    定義方法(def) [/2015-09-22] 名前渡し [/2011-07-18] 値の返し方(return) 呼び出し方法 [/2011-02-26] 名前付き引数 [2010-12-18] 特殊なメソッド名 [/2013-06-08] 関数の型 [/2011-07-17] 複数の引数リスト [2010-12-27] valでオーバーライド [2011-10-16] 暗黙の型変換 [/2011-03-05] 無効化 [2011-04-17] pimp my library [2010-12-26] implicit class [2013-06-08] 暗黙の引数 [2010-12-30] context/view bound [2011-01-04] view bound [2011-01-04]

  • InfoQ: ScalaとSpring:両世界のベストを一体化

    このドメインモデルに基づいて、まず第一に、このアーティクルでは、どのようにHibernate/JPAを使って、Scalaにおける Personエンティティ用の ジェネリックData Access Object (DAO) と具体的なDAOの実装方法を示す。その結果、 PersonDaoに、 CRUD操作が実行できるようになりる。例: val p1 = new Person(“Rod Johnson”) val p2 = dao.findByName(“Martin Odersky”) p1.link(p2) personDao.save(p1) Step 2 それからこのアーティクルは、Person エンティティを「リッチな」ドメインオブジェクトに変換するのに、何が必要なのかを要約する。このオブジェクトは、内部で NotificationServiceを使って、linkメソッドが呼ばれたと

    InfoQ: ScalaとSpring:両世界のベストを一体化
  • IntelliJ IDEA へのScala プラグイン導入手順 - A Memorandum

    現時点でScalaでIDE使うなら、IntelliJ かなぁ。 Scala の導入 念のため Scala の導入から。。 http://www.scala-lang.org/downloads から scala-2.8.1.final.zipscala-2.8.1.final-devel-docs.tgz を落として適当なディレクトリに解凍します。ドキュメントファイルは scala-2.8.1.final の解凍後の doc ディレクトリ中に scala-2.8.1.final-devel-docs を解凍して scala-2.8.1.final/docs/scala-devel-docs/api となるように配備します。 IntelliJ IDEAの導入 以下からインストーラを落としてインストールします。今回は 10.0.2 を利用。 http://www.jetbrains.co

    IntelliJ IDEA へのScala プラグイン導入手順 - A Memorandum
  • Java使いをScalaに引き込むサンプル集 | mwSoft

    前書き Scalaという言語をご存知ですか? Javaと同じくコンパイルされるとclassファイルになり、実行時はJVM上で動作する、オブジェクト指向+関数型のプログラミング言語です。 Scalaを開発したのはJavaのgenericsの設計を手がけたり、javacの開発をしていた経歴も持つMartin Odersky氏。 Scalaは後発の言語ということもあって、Javaを書いている時に感じる冗長さに対する様々な解が用意されています。 記事では、ScalaJavaのコードを比較しながら、JavaユーザがScalaに移った際に得られるメリットを提示していきます。 尚、序盤のサンプルコードはJavaユーザに伝わりやすいように、returnを明記したり、メソッドは必ず{ }で囲むなど、極力Javaっぽい記述をしています。 だいたいJavaと同じような書き方ができます ScalaJava

  • Groovy言語とAspectJの人気が今ひとつな本当の理由 - 達人プログラマーを目指して

    先日DevLOVEの主催するぐるぐるGroovyという勉強会に参加してきました。 1月24日 DevLOVE ぐるぐるGroovy -Easy Going Groovy-(東京都) Groovy言語については、構文がJava言語に非常に近い上に、Javaの既存ライブラリーとの相互運用性も高く、さらに、Java言語に比べて非常に簡潔にプログラムが書けるという特徴があります。動的言語のRubyのような柔軟性とJavaプログラマーにとっての学習のしやすさをいう面を兼ね備えた軽量言語であり、私としてはSI業界でもきっと流行るはずに違いない思いと数年前から注目していました。 Groovyイン・アクション 作者: Dierk Konig,Andrew Glover,Paul King,Guillaume Laforge,Jon Skeet,杉浦孝,櫻井正樹,須江信洋,関谷和愛,佐野徹郎,寺沢尚史出版社

    Groovy言語とAspectJの人気が今ひとつな本当の理由 - 達人プログラマーを目指して
    daisuke-m
    daisuke-m 2011/02/07
    『JavaのxxxはAだがScalaはB』なぜ変えたかなぁ。理由があるのだとは思う。