タグ

scalaに関するnobeansのブックマーク (28)

  • Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek

    English version is here: http://www.slideshare.net/seratch/jjug-ccc-2014springeng http://www.java-users.jp/?page_id=1048#R2-4

    Java エンジニアチームが始めやすい Scala コーディングスタイル #ichigayageek
  • はてなブックマーク in Scala

    2. 自己紹介 名前 い な 伊奈 りんたろう 林太郎  (id:tarao @oarat) 2008-08 はてなインターン 2008-10 はてなアルバイト (ブックマークチーム) 2010-04 日学術振興会 特別研究員 (DC1) 2013-04 はてな正社員 2013-12 ブックマークチーム ◮ アルゴリズム屋さん ◮ 検索技術 > 機械学習 ≫ アドテク ◮ 最近は設計したり基盤寄りな部分を担当したり 3. 自己紹介 名前 い な 伊奈 りんたろう 林太郎  (id:tarao @oarat) Scala 歴: 4ヶ月 ◮ slick-jdbc-extension ◮ 型レベルのラムダ計算 ◮ Software Design 2015 年 8 月号 大学時代は ◮ 研究室: 型理論, プログラム意味論, 証明支援系 ◮ OCaml が公用語 ◮ gradual typing

    はてなブックマーク in Scala
  • Scalaのnull/Nothing/Nil/Noneはやりすぎなのか? - ぐるぐる~

    Twitterしてたら目に入ったので軽く。 Javaにおけるnull。これまでとこれから この後のスライドで、 Scalaにおける「何もないもの」の分類はやり過ぎ感はある と言われているんですが、ある程度は誤解に基づく意見だよなぁこれは、ということを言っておこうかなと。 Scalaについて 日では説明が不要なくらいScalaって有名になってると思うんですが一応。 ScalaはJVMの上で動作する、(クラス指向の)オブジェクト指向プログラミングと関数型プログラミングを融合させた言語です。 そして、Scalaのコア機能はどちらかというとオブジェクト指向プログラミング寄りです。 オブジェクト指向プログラミングをベースに、関数型の色々なものを実現している感じです*1。 オブジェクト指向プログラミング的な機能として真っ先に思いつくのは何でしょうか? 割と上位の方に、「継承」とか「型階層」とか来るん

    Scalaのnull/Nothing/Nil/Noneはやりすぎなのか? - ぐるぐる~
    nobeans
    nobeans 2015/04/15
    “基本的にはNoneを使う。 他の言語を知っていると紛らわしく思える名前が出てきても、それらは別物なので気にしない”/紛らわしく思える辺りがやり過ぎ感を感じないでもないが、実用上は問題なさげ
  • 型引数の基本から学ぶ、FreeモナドとCoyoneda - AweKuit日記

    このエントリはScalaアドベントカレンダーの3日目です。昨日は Kuchitama さんのScalaがつないでくれた縁-NetflixMeetup Kyoto 開催後記- でした。 前おき この記事は、タイトル通りFreeモナドとCoyonedaを扱うものの、あまりそれらの直接的な話やモナモナした話ではなく、そこに至るまでの実装のあれこれを『Scalaのプログラミングとして』手探りで追ってみよう、というものです。 その過程で、特に型引数(型変数)や高階型や、それらが継承時にどう扱えるかというあたりのScalaの基にたっぷり触れます。 なので、Freeモナドに興味がない方でも 型引数で A とか F[_] とか出てくると、まだちょっとこわい Scalaでいざプログラミングすると型が合わずつまづく事が多い という方にも、役に立つ部分があると思うので参考にぜひ読んでみてもらいたいです。 もち

    型引数の基本から学ぶ、FreeモナドとCoyoneda - AweKuit日記
  • ScalaでGroovyのGrapeのようなことがやりたい - CLOVER🍀

    GroovyのGrapeって、便利ですよね。個人的には、Groovyを使う大きな理由のひとつだったりします。 だって、お手軽だもん。 @Grab('org.apache.commons:commons-lang3:3.1') import org.apache.commons.lang3.StringUtils スクリプトに、これを書くだけで依存関係を解決してくれます。ちょっとしたスクリプトを作る時に、すごく重宝しますよ。 んで、これがScalaでもできないだろうかと思って、ちょっと調べたのですが…sbtがそんな機能を一応持っているようです。 Scripts, REPL, and Dependencies http://www.scala-sbt.org/release/docs/Detailed-Topics/Scripts ScalaスクリプトとREPLで、依存関係の解決機能が使えるよ

    ScalaでGroovyのGrapeのようなことがやりたい - CLOVER🍀
  • Scalaは新しいEJB 2か

    原文(投稿日:2011/11/22)へのリンク Joda Timeライブラリの開発者でJSR 310の日時API改善の仕様策定者であるStephen Colebourne氏がScalaの適用しやすさについて示唆に富む記事を書いている。氏はScalaとEJB 2を比較している。氏の考えではEJB 2はJava EE仕様の中で最悪のものだった。 … たくさんの決まりきった書き方やXMLや全体的な複雑さがJavaの世界に持ち込まれました。EJB 2は広く導入されましたが、批判を伴いました。開発者はEJB 2が抽象度の高いAPIを導入することで、企業向けアプリケーション構築の複雑さを緩和しようとしながら、結局、期待した結果を生まずに更なる複雑さをもたらしたということに気づいていたのです。 そして、氏はFantomやKotlin、Groovy、Ceylonのような言語は好きだが、Scalaはこれから

    Scalaは新しいEJB 2か
  • Scalaのtrunkをビルドする - ( ꒪⌓꒪) ゆるよろ日記

    「あばばばばばばばば」 この記事は、Scala Advent Calendar jp 2010 : ATNDの17日目です。 今日は、Scalaそれ自身をソースからコンパイルする方法を紹介します。やりかたは簡単で、Scalaのソースコードを持ってきて、antコマンドでビルドするだけです。 Scalaのソースコードはsvnでホストされてますが、githubにもmirrorがあります。こちらから落とすのがよいでしょう。svnが許されるのはゼロ年代までだよねーキャハハ!! scala/scala · GitHub じゃあ、git cloneでソースコードを取得して……antでビルドです。簡単っしょ?sbtも使えます。ただし、コンパイルにはメモリを1.5Gほど消費します。core i5/8G/SSDのMBPでビルドに10分かかりました。 $ git clone https://github.com

    Scalaのtrunkをビルドする - ( ꒪⌓꒪) ゆるよろ日記
    nobeans
    nobeans 2011/06/17
    おお、githubにmirrorがあったのか
  • モナドはメタファーではない · eed3si9n

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

  • 「モナドは象だ(Monads are Elephants)」日本語訳 — Japanese Translation of Monads are Elephants v1.0 documentation

    「モナドは象だ(Monads are Elephants)」日語訳¶ この文章は、以下の記事の翻訳です。 Monads are Elephants: http://james-iry.blogspot.com/2007/09/monads-are-elephants-part-1.html http://james-iry.blogspot.com/2007/10/monads-are-elephants-part-2.html http://james-iry.blogspot.com/2007/10/monads-are-elephants-part-3.html http://james-iry.blogspot.com/2007/11/monads-are-elephants-part-4.html JAMES IRY:ONE DIV ZERO: http://james-iry

  • 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:両世界のベストを一体化
  • 2011-01-30

    ええっと、リクエストされたので、今回は並行処理ネタにいってみます。 並行処理といえば、このは必読書ですね。でも、書いてることは、かなりムズカシイデス(´・ω・`) Java並行処理プログラミング ―その「基盤」と「最新API」を究める― 作者: Brian Goetz,Joshua Bloch,Doug Lea出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/11/22メディア: 単行購入: 24人 クリック: 419回この商品を含むブログ (163件) を見る ということで、並行処理について、もうちょっと優しく分かりやすく解説できないか考えて書いてみます。 スレッドセーフにするには 今回は、プログラムをスレッドセーフにするためにどんなことを考えればよいか。そういうテーマです。 アンスレッドセーフなコードから このの最初の方に、"スレッドのリスク"という章で、スレッド

    2011-01-30
  • RubyからScalaに乗り換えた15くらいの理由 - ヽ( ・∀・)ノくまくまー(2010-04-26)

    ● [Scala] RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、 Rubyコードで型チェックをやるのがになる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc

    nobeans
    nobeans 2010/10/22
    Groovy...
  • Scala開眼

    1階受付:インストール等 / 1階案内版:コマンド / 2階:書き方 / 3階:文と式 / 4階:関数 / 5階:オブジェクト指向 / 6階:型 / 7階:注釈等 / 屋上:言語仕様要約 / 雲:scalaパッケージ概観 / 青空:その他の付属パッケージ概観 なお、以上の解説はJavaの文法とコマンドや標準ライブラリ等を一応知っていることを前提(現行のScalaはなおJavaライブラリへの依存度が高くScalaだけで完結できる状態では無い。なお、Scalaのコンパイラ自体はJava1.4用のコードも吐けるが、標準ライブラリが多く1.5を前提としている)とし、その違いだけをとりあえずは書き留めるものである。もっぱら文法やライブラリ参照用であることを目指しているので、例や特長等は次のリンクを参照されたい(なおただし、原著者たちの配慮にもかかわらず、それらの例は関数型言語に関する事前の概要的把握

    nobeans
    nobeans 2010/05/10
    なるほどこれのことか。学術系の人でないならもっと平易な言葉で書いてもらえると嬉しかったなぁ。という感想。
  • Scala的な考え方 - Scalaがとっつきにくいと思っている人へ - ( ꒪⌓꒪) ゆるよろ日記

    Javaな人から見ると、「Scalaって難しい」ってイメージがありますね。俺も最初はそう思ってました。今もですけど。 で、考えてみたんですが、何が難しいって考え方・イディオムになじみがないのが原因かと思ったんです。 ここでは、俺が今までScalaをやってきて得た考え方を紹介します。「Scalaをちょっとやってみたんだけど、とっつきにくくて…」と思われている方は、ぜひご一読ください。 参考資料: Scala入門 - Scalaで書きはじめたJava使い向け - Scala勉強会@東北 Dropbox - 404 神は言われた。「リストあれ。」 Lisperは、リストをどう作るかをまず考えるらしいです。適切なリストが出来たら、プログラムはもうできたも同然だと。同じ考え方は、Scalaでも通用すると思います。 大まかに、こんな流れで考えてます。(リストは最初から与えられることもあるでしょう) 「

    Scala的な考え方 - Scalaがとっつきにくいと思っている人へ - ( ꒪⌓꒪) ゆるよろ日記
    nobeans
    nobeans 2010/03/18
    パターンマッチほしい
  • Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編

    Scalaの基と環境の構築 古くはLisp、近時ではHaskellなど、世の中にはとんがった言語がいくつもあります。Scalaも、オブジェクト指向言語と関数型言語の良さを高いレベルで両立させようという意欲的な言語です。 しかし、Scalaの良さは普段C言語やJavaなどでプログラムを書いている人が、あまり違和感なくコードを読み書きできることにもあります。そこで、Scalaの「プログラミング言語」としてのポテンシャルの高さを見ていきましょう。 JREまたはJDKのインストール まずは、Scala体のインストールと、簡単な動作確認をしてみましょう。ここでは、執筆時点での最新バージョン2.7.5を例に取り解説していきます。 Scalaは、JavaVM上で動作するため、実行にはJREをインストールしておきます。また、稿のサンプルコードを動作させるには、ビルド環境としてMavenを使用している

    Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編
  • Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編

    Scalaとは Scalaは、2003年にJavac(コンパイラ)やJavaのGenericsの設計/開発貢献者であるMartin Odersky氏(スイス・ローザンヌ工科大学教授)によって、開発が開始された比較的新しいプログラミング言語です。Javaは実用言語として幅広いシステムで使用されてきましたが、下位互換性を保つという要請の中、言語としての機能強化がなかなか進まないといった限界も見えてきています。そのような現状もあることから、ScalaJavaの後継として実用的な言語を目指して開発されています。 Scala最大の特徴は、Javaの良さを最大限継承しつつ、スクリプト言語や関数型言語の良いところも吸収し、先進的な機能/文法を取り入れている点です。また、今後のハードウェアのマルチコア化を見据え、簡易に並列処理プログラミングを行うことができるライブラリが付属しています。 Scalaのメリ

    Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編
  • 「モナドは象だ」の翻訳まとめ - Fight the Future

    とてもエントリが多くの回にわたったので、まとめます。 One Div Zero: Monads are Elephants Part 1 モナドについて調べていく(7) - Fight the Future じゅくのblog モナドについて調べていく(8) - Fight the Future じゅくのblog モナドについて調べていく(9) - Fight the Future じゅくのblog モナドについて調べていく(10) - Fight the Future じゅくのblog モナドについて調べていく(11) - Fight the Future じゅくのblog モナドについて調べていく(12) - Fight the Future じゅくのblog One Div Zero: Monads are Elephants Part 2 モナドについて調べていく(14) - Fig

    「モナドは象だ」の翻訳まとめ - Fight the Future
  • 第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~

    大手SIベンダにてSEやPMやアーキテクトとして勤務したのち,株式会社豆蔵を経て,現在は合同会社シンプルアーキテクト代表社員であり,株式会社匠Business Placeのチーフコンサルタント。主に超上流のプロセスである要求開発やオブジェクト指向,アジャイル開発のコンサルタントとして活躍中。開発の現場にこだわり,開発の現場を少しでもよくしたいと日夜奮闘している。要求開発アライアンス執行委員。著書に『オブジェクト脳のつくり方』や『eXtreme Programming実践レポート』(ともに翔泳社発行。後者は共著)などがある。 Javaなど,オブジェクト指向や手続き型のプログラミングの経験はあるけれど,関数型のプログラミングは初めてという皆様のための,そして筆者自身のための「関数脳のつくり方」シリーズのSecond Season(First Seasonはこちら)。今回は「モナド」を取り上げま

    第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~
  • GroovyとScala: 二つのJVM言語の物語 — GroovyとScala: 二つのJVM言語の物語 v1.0 documentation

    GroovyとScala: 二つのJVM言語の物語¶ By Andres Almiray <aalmiray@users.sourceforge.net> 次のプロジェクトではScalaよりもGroovyを選ぶべき?それともその逆でしょうか?悩むのはやめて、両方使ってみましょう!この記事では、GroovyとScalaが、それぞれの慣習やその言語らしさに妥協することなく、お互いにどう連携できるかを示します。 Andres Almiray は、ソフトウェア設計・開発において10年以上の経験を持つ、Java/Groovy開発者です。Javaの黎明期からwebやデスクトップアプリケーションの開発に携わってきました。オープンソースの信奉者であり、Groovy、Griffon、DbUnitといった著名なプロジェクトに参加するとともに、自身でもいくつかのプロジェクト(Json-lib, EZMorph,

  • ScalaによるWebアプリケーションフレームワーク「Lift」とは

    Java仮想マシン上で動くオブジェクト指向+関数型言語として、Scala(スカラ)が最近注目を集めています。Scalaで構築されたWebアプリケーションフレームワークはいくつかありますが、 連載ではその中で比較的歴史のある(といっても2年程度ですが) フレームワークである、Lift(リフト)を紹介したいと思います。 はじめに Java仮想マシン(以下JVM)上で動くオブジェクト指向+関数型言語として、Scala(スカラ)が最近注目を集めています。 Scalaで構築されたWebアプリケーションフレームワークはいくつかありますが、 稿ではその中で比較的歴史のある(といっても2年程度ですが) フレームワークである、Lift(リフト)を紹介したいと思います。 対象読者 Javaは知っているが、Scalaも学んでみたいと思っている方 ScalaでのWebアプリケーション開発に興味がある方 必要な

    ScalaによるWebアプリケーションフレームワーク「Lift」とは