並び順

ブックマーク数

期間指定

  • から
  • まで

121 - 160 件 / 7991件

新着順 人気順

scalaの検索結果121 - 160 件 / 7991件

  • Scala in Perl Company という内容で発表しました #yapcasia【YAPC::Asia Tokyo 2014】 - はこべにっき ♨

    Scala In Perl Company : Hatena - YAPC::Asia Tokyo 2014 Scala in Perl Company という内容で発表しました。はてなではPerlを10年近く利用していますが、最近作っているMackerelというサービスの開発ではScalaを利用しています。この発表では、Perlによるソフトウェア進化の困難さと、Scalaでその課題がどのように解決できるかについて解説しました。 発表時間がたりず、ScalaでのWebアプリケーション開発についてはくわしく紹介できなかったのですが、資料にはその部分も含めています。雰囲気でもつたわればうれしいです。話しきれないところがいろいろあったので、まだ会場にいる方はぜひ声をかけてください!

      Scala in Perl Company という内容で発表しました #yapcasia【YAPC::Asia Tokyo 2014】 - はこべにっき ♨
    • Scalaでの例外処理 - Either,Option,util.control.Exception - ( ꒪⌓꒪) ゆるよろ日記

      今日はScalaの例外処理について解説しますよ。 基本 - try,catch,finally 例外処理の基本は、try,catch,finallyです。これはJavaと同じですね。 ただし、Scalaでのtry,catch,finallyは値を生成します。つまり、実行されたブロックの値が評価されます。 scala> val n = try{ "99".toInt } catch { case e:Exception => -99 } n: Int = 99 scala> val n = try{ "foo".toInt } catch { case e:Exception => -99 } n: Int = -99 上記のように、catch節には "case e:Exception => ..."のようなパターンマッチを書くことで、対応する例外の型に応じて補足することができます。try,

        Scalaでの例外処理 - Either,Option,util.control.Exception - ( ꒪⌓꒪) ゆるよろ日記
      • Scalaを使っているプロジェクトにメンバーがジョインする時に勧めている資料まとめ | DevelopersIO

        はじめに 業務のメインプロジェクトではScalaを使うことが多く、チームに新しく加わったメンバーのオンボーディングではScala言語自体やライブラリ(主にtypelevel系)の資料を紹介する機会が少なくありません。毎回リンクのリストを作り、コメントを添えて共有するのですが、回数も増えてきたので記事にしてみることにしました。 Scala言語の入門 ScalaText 『Scala スケーラブルプログラミング』(第三版) 『Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド』 1つ目のScalaTextは有名なドワンゴさんの研修資料が日本のScalaコミュニティに寄贈にされたものです。2つ目以降はScalaTextの冒頭でも言及がありますが、入門としては鉄板かなと思います。他のプログラミング言語を修得されているのであればScalaTextを一通り

          Scalaを使っているプロジェクトにメンバーがジョインする時に勧めている資料まとめ | DevelopersIO
        • Tutorial和訳 - プログラミング言語 Scala Wiki

          下記のWikiページは version 1.3 (July 13,2010) です。英文は表示されませんが、編集ページ上にコメントで残してあります。加筆・修正等はどうぞご自由に。 翻訳文の PDFはこちらです。 A Scala Tutorial for Java Programmer version 1.2 A Scala Tutorial for Java Programmer version 1.3 (表示コメントは昔のままですが) ver1.3は reStructuredTextで書いてあります。ソースや作り方は PDF最後のページに添付ファイル(UTF-8 BOMなしテキスト)として埋め込んであります。 翻訳は完了しましたので、どなたか翻訳の不備をご指摘願います。 -- tmiya (2007-11-18 21:32:02) 翻訳おつかれさまでした。ファイル名を_jaをつけるなどし

            Tutorial和訳 - プログラミング言語 Scala Wiki
          • 「Functional Programming in Scala」を訳した「Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド」という本が出ます - xuwei-k's blog

            わざと両方のタイトルをblogのタイトルに入れてみました(ながい・・・) レビューに少しだけ関わりました。自分が翻訳したわけではありません。あくまでもレビューです 原著 Functional Programming in Scala Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear) 作者: Paul Chiusano,Rúnar Bjarnason,株式会社クイープ出版社/メーカー: インプレス発売日: 2015/03/20メディア: 単行本(ソフトカバー)この商品を含むブログ (7件) を見る http://book.impress.co.jp/books/1114101091 作者達はおそらく訳されて今の時期にでることをあまり知らない?だろうから、知らせるのと感謝の意を伝えるtweet↓(そしてサンプ

              「Functional Programming in Scala」を訳した「Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド」という本が出ます - xuwei-k's blog
            • コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS|ハイクラス転職・求人情報サイト AMBI(アンビ)

              コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS 数多くのScala関連OSSにコミットを続ける吉田憲治(xuwei-k)さん。その精力的な活動を支える、関数型の知見の源をうかがいました。 オブジェクト指向言語と関数型言語の特徴を併せもつマルチパラダイム言語・Scala。この言語に関連するOSSのコミット履歴には「 xuwei-k」というアカウントが頻繁に登場します。今回お話を聞いた吉田憲治(よしだ・けんじ/ @xuwei_k )さん、その人です。 吉田さんはScalaのスペシャリストとして、数多くのScala関連OSSにコミットを続け、2018年、Scalaコミュニティに対する貢献者に贈られる「Phil Bagwell Award」を受賞しています。界隈屈指のコントリビューターとして知られる吉田さんに、Scalaのスキルを研鑽して

                コードを読み込みScalaの関数型パラダイムを学ぶ - xuwei-kがScalaを学ぶために読んだOSS|ハイクラス転職・求人情報サイト AMBI(アンビ)
              • Scala with DDD

                32. trait Entity[ID <: Identity[_]] { ! /** エンティティの識別子。 */ val identity: ID ! override final def hashCode: Int = 31 * identity.## ! override final def equals(obj: Any): Boolean = obj match { case that: Entity[_] => identity == that.identity case _ => false } ! } 33. trait Identity[+A] extends Serializable { ! def value: A ! } ! object EmptyIdentity extends Identity[Nothing] { ! def value = throw E

                  Scala with DDD
                • Scala による自然言語処理

                  DSIRNLP 4 の資料です。 http://partake.in/events/76854228-ba38-4f6e-87b9-f79e30add75c Read less

                    Scala による自然言語処理
                  • Javaの10個のBad Partsのほとんどはscalaだと解決されちゃうんだぜ - xuwei-k's blog

                    ネタ元 業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 結論から先に言うと、3と10以外は結構直接的にscalaで解決できるというか、javaに比べてscalaの方が便利だとおもいます。*1 あと、元ネタのblogの人はgroovy詳しいみたいですが・・・ groovyとscala比べるとgroovyの方が手軽で便利だったり、scalaのほうが型安全だったり*2いろいろあるかもしれませんが、groovyあまり詳しくないので、その辺の言及というか、比較はやめておきます。*3 1.標準APIのチェック例外が扱いにくい チェック例外ってなにそれおいしいの?(・ω・) java Field field; try { field = getClass().getField("testField"); Object value = field.get(this); }

                      Javaの10個のBad Partsのほとんどはscalaだと解決されちゃうんだぜ - xuwei-k's blog
                    • Scala で書いたマイクロサービスを Go で書き直した話 - JX通信社エンジニアブログ

                      この記事はJX通信社 Advent Calendar 2019 2日目の記事です。 昨日は、たっちさんの「Kubernetes Admission Webhookでリソース作成を自在にコントロールする」でした。 こんにちは、サーバーサイドエンジニアの @kimihiro_n です。 今回は長年動かしてた Scala のマイクロサービスのリビルドを行った話をしようと思います。 TL;DR 新しい言語を投入するのにマイクロサービスは便利 Scala で感じていた問題点を解消しつつ Go へ移行できた 消費メモリが大きく減って安定稼働できるようになった 予防線を貼っておきますと、Scala より Go のほうがいいよね、といった本旨ではありません。 Scala で書いたマイクロサービス 弊社のマイクロサービスの一つにカテゴリ分類専用のサービスが存在します。 カテゴリやキーワードを登録しておくとル

                        Scala で書いたマイクロサービスを Go で書き直した話 - JX通信社エンジニアブログ
                      • GiltでのScala,Docker,AWSを使ったマイクロサービスのスケールアップ

                        Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                          GiltでのScala,Docker,AWSを使ったマイクロサービスのスケールアップ
                        • Scalaのnull/Nothing/Nil/Noneはやりすぎなのか? - ぐるぐる~

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

                            Scalaのnull/Nothing/Nil/Noneはやりすぎなのか? - ぐるぐる~
                          • ScalaでWebアプリケーションのエラー処理を綺麗に書く - はこべにっき ♨

                            Play Frameworkにおいて、POSTリクエストから得られたbody中のパラメータをもとに何か処理をするというよくあるコードを、ちょっと整理して見やすくする方法を学んだのでメモがてら御シェアさせていただきます。Playのリクエストハンドラを書くときに頻繁に現れたので、例がPlayのコードになっているけど、内容的にはScala全般的な話だと思う。Scalaプロみたいな人にはまったく新しいことはないと思う。 本題と関係ないけど、YAPCでScalaの話をするかもしれません。言語自体の話よりかは採用理由とか開発フローの話を、これまでのPerlでのWeb開発を踏まえて話す感じになりそう。Scala In Perl Company : Hatena - YAPC::Asia Tokyo 2014 さて、本題ですが、話題の対象になるのは以下の様なPlayFrameworkのコードです。 def

                              ScalaでWebアプリケーションのエラー処理を綺麗に書く - はこべにっき ♨
                            • Scala + MongoDB + Herokuで2chクローンを作る(連載第1回)

                              人生で3回2chクローン掲示板システムをプログラムし、運用したことがある。 まずはじめは、C++。boostを使ってテンプレート満載な構成だった。VC6でコンパイルできないパターンがあって泣いたっけ。コンパイルの「遅さ」にほくそ笑んでた。あの頃は若かった。 そのコードを使って東京工業大学掲示板というWeb掲示板システムを運用していた。C++では機動的な新機能開発が難しいことを、すぐに思い知った。当時使ったことがなかったPHPで試しにリライトしてみた。数時間で開発できちゃった。すぐリプレイスしちゃうよね。 ニコニコ大百科というWikiシステムを書いたときにも、付随する2ch式の掲示板システムを書いた。Rubyだった。Rubyで実用的なWebアプリケーションを書いたことがなかったが、これも難なく実装することができた。UTF-8を採用したので、トリップの互換性を取るのが面倒だった。 Python

                                Scala + MongoDB + Herokuで2chクローンを作る(連載第1回)
                              • Scala on Hadoop: Hadoop Conference - stanaka's blog

                                先日、Hadoop ConferenceでScala on Hadoopというタイトルで発表してきました。スライドを以下に置いておきます。 Scala on HadoopView more presentations from Shinji Tanaka. ダイジェストとして、ScalaをHadoopで動かすための方法を書いておきます。 まず、Hadoop上でScalaを実行させるためには、JavaとScalaを接続するライブラリが必要となります。ここでは、SHadoop( http://code.google.com/p/jweslley/source/browse/#svn/trunk/scala/shadoop )を使用します。SHadoopは、型変換を行うシンプルなライブラリです。 よくあるWordCountのサンプル、WordCount.scala (http://blog.jo

                                  Scala on Hadoop: Hadoop Conference - stanaka's blog
                                • flurry on Twitter: "情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W"

                                  情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W

                                    flurry on Twitter: "情報収集してるときに、ねっとうよく発言を読んでしまうという点では、このひとが移行先として検討しているPythonのほうが酷いと思います。とくに人工知能云々で流行する以前からやってた連中。 あとはGolangやScalaもつらい。は… https://t.co/LIrgkoCd8W"
                                  • Scalaで学ぶヘキサゴナルアーキテクチャ実践入門

                                    「Scala将軍達の後の祭り」での発表資料 http://scala-syogun-matsuri.connpass.com/event/28124/

                                      Scalaで学ぶヘキサゴナルアーキテクチャ実践入門
                                    • Scala.js

                                      Scala.js 1.16.0 Harness the Scala and JavaScript ecosystems together. Develop robust apps for browsers, Node.js, and serverless. Strong typing guarantees your code is free of silly mistakes; no more mixing up strings or numbers, forgetting what keys an object has, or worrying about typos in your method names. Scala.js takes care of all this tedious book-keeping for you, letting you focus on the ac

                                        Scala.js
                                      • PHP5.4とScalaのトレイト比較 - なんたらノート第三期ベータ

                                        PHP5.4にはトレイトという文法が導入されて、多重継承の便利さが享受できるようになるそうです。 いろいろ試してみることにしました。 トレイトといえば代表選手はScalaですね。Scalaでいうトレイトは、インターフェースの定義とメソッドの実装を同時にやってくれる便利な概念でした。単一継承のOOP言語では「〜は〜の一種」という制約が強すぎて、「ペンギンは鳥の飛行メソッドによって飛行できてしまう」という問題があります。でもちゃんと「ペンギンは飛べないが泳げる鳥」を綺麗に解決する必要はあって、その解答として、トレイトのあるScalaではこんな解が導けます。 abstract class Animal abstract class Bird extends Animal { def hasBeak = true // 鳥にはかならずクチバシがある def hasWings = true // 翼

                                          PHP5.4とScalaのトレイト比較 - なんたらノート第三期ベータ
                                        • Scala2.10.0のDependent method typesと型クラスを組み合わせた『The Magnet Pattern』がヤバい件 - ( ꒪⌓꒪) ゆるよろ日記

                                          これが……型の力かッ……!! spray | Blog » The Magnet Patternという記事で、「The Magnet Pattern」というデザインパターンが紹介されている。 これは、メソッドオーバーロードで解決していた問題を、型クラスとDependent method typesを組み合わせて置き換えることで、オーバーロードの際の様々な制約(Type Erasureなど)を突破し、より柔軟な拡張性を得ることができるというもの。このパターンでは、引数の型に応じて異なる結果型を返すようにできる。 この記事で、今まで何のために使われるのかわからんかったDependent method typesの有効性が理解でき、あらためて型の力を思い知った。 以前に"Generalized type constraints"(Scalaで&lt;:&lt;とか=:=を使ったgeneraliz

                                            Scala2.10.0のDependent method typesと型クラスを組み合わせた『The Magnet Pattern』がヤバい件 - ( ꒪⌓꒪) ゆるよろ日記
                                          • Scala Standard Library — _root_

                                            This is the documentation for the Scala standard library. Package structure The scala package contains core types like Int, Float, Array or Option which are accessible in all Scala compilation units without explicit qualification or imports. Notable packages include: scala.collection and its sub-packages contain Scala's collections framework scala.collection.immutable - Immutable, sequential data-

                                            • GeoHashのdecodeのアルゴリズムの解説します & ScalaのGeoHashライブラリを作ってみました(仮) - ( ꒪⌓꒪) ゆるよろ日記

                                              GeoHash(http://en.wikipedia.org/wiki/Geohash)は、緯度経度を文字列のハッシュで表現する仕様です。 GeoHashにより表現された緯度経度の情報は、一つの文字列で緯度と経度という2次元の情報に加えて精度も表すことができるという特徴を持っています。 例えば、どうでしょうバカの聖地である北海道札幌市の平岸高台公園は、北緯43.025東経141.377ですが、これをGeoHashで表現すると、"xpssc0"となります。 この"xpssc0"というGeoHash表現は、「北緯43.0224609375から43.0279541015625の間で、東経141.3720703125から141.383056640625の矩形範囲」であり、座標はこの矩形範囲の中心点になります。 @masuidrive blogさんの緯度経度を文字列で表すGeoHash - @ma

                                                GeoHashのdecodeのアルゴリズムの解説します & ScalaのGeoHashライブラリを作ってみました(仮) - ( ꒪⌓꒪) ゆるよろ日記
                                              • Tumblr における Scala - Kato Kazuyoshi

                                                最近のウェブ系スタートアップが採用しているプログラミング言語やフレームワークまとめ とちょうど同じくらいの時期に High Scalability に Tumblr Architecture - 15 Billion Page Views A Month And Harder To Scale Than Twitter という記事がでていた。 まとめだと Tumblr は PHP を使っていることになっているけど、いま現在の Tumblr は PHP ですべてを書くのを止めて、Scala も使っているらしい。 Scala と Finagle Tumblr はもともと LAMP (Linux + Apache + MySQL + PHP) で出来ていた。スケールさせるために memcached や HAProxy でキャッシュしてみたり、MySQL を sharding してみたり、バックエ

                                                • めんどくさくない Scala #kwkni_scala

                                                  怖くない Scala 勉強会での発表資料です。 http://connpass.com/event/3420/ Read less

                                                    めんどくさくない Scala #kwkni_scala
                                                  • ドワンゴでのScala活用事例「ニコニコandroid」

                                                    The document discusses DWANGO's use of Scala and the Play framework to build APIs for niconico's Android app. It summarizes the project's history and team structure, describes the core library, API server, and management server built using Scala, and outlines some pros and cons they experienced like case class limitations, Jenkins memory issues, and Akka exceptions in Play.Read less

                                                      ドワンゴでのScala活用事例「ニコニコandroid」
                                                    • アドテク×Scala×パフォーマンスチューニング

                                                      アドテク×Scala meetup 2014-11-20 http://connpass.com/event/8384/Read less

                                                        アドテク×Scala×パフォーマンスチューニング
                                                      • チャットワークがScalaを採用する理由、これからのチャレンジ。 | チャットワーククリエーターズブログ

                                                        こんにちは!ChatWork CTOの山本です。 先日このブログにて「チャットワークの新しい開発言語とフレームワークを決める開発合宿を開催!その全貌を丸公開します。」という記事で、チャットワークがScalaを採用することを発表しました。 ありがたいことにこの記事はたくさんの方に読んでいただき、大きな反響がありました。セミナーなどでお話する時も、Scala採用について話を聞きたいと言われることが増えています。 今回は、Scala採用にいたったより詳しい背景と、現在の状況、そしてこれからのことについてご紹介できればと思っています。 Scala採用にいたった背景現在のチャットワークは、「PHP + 自社開発の独自フレームワーク」で構築されています。 もともとチャットワークの開発は、社内用のツールとして1人のプロジェクトからスタートしました。そのためあまり工数をかけることはできず、既存の社内システ

                                                          チャットワークがScalaを採用する理由、これからのチャレンジ。 | チャットワーククリエーターズブログ
                                                        • ちっちゃなScalaコンテナを作つコツ(6 MiBだぞ) - Lambdaカクテル

                                                          おなじみの画像 JavaやScalaといったJVM言語のDockerイメージは、JVMを同梱しなければならない都合で肥大化しがちである。特に何もしなくても、例えば一般的なamazoncorretto:21のイメージサイズは217.7 MBもある。 hub.docker.com これにさらにビルド済みのJARファイルが載ってくるので、結構大きくなってしまうのだ。 そこで、Scalaのコンテナイメージのサイズをなんとか小さくできないかと、考えた。すると、JVMを使ったまま70 MiBくらいに縮めることができた。 github.com コンテナイメージのサイズを小さくするために、何をしたかを書いていく。ちなみに題材としたアプリケーションはちょっとしたHello, Worldをするだけのもので、ライブラリはCatsに依存させた。 JVM使う編 マルチステージビルドを行う Alpineなどの軽量ラン

                                                            ちっちゃなScalaコンテナを作つコツ(6 MiBだぞ) - Lambdaカクテル
                                                          • JavaとScalaとC#のジェネリクス機能比較表 - Onion開発しつつ、PEGEXを開発する日記

                                                            JavaとScalaとC#のジェネリクスは、いずれも継承を持ったオブジェクト指向言語においてParametric Polymorphismを実現するための手段であり、それぞれ異なった特性を持っている。というわけで、それぞれの言語においてジェネリクスがどのようにサポートされているかを比較した表を用意してみた。後で気が向いたら、各項目の説明を追加するかも。 Java(5.0以降) Scala C#(4.0) ジェネリックなクラス ○ ○ ○ ジェネリックなメソッド ○ ○ ○ 型パラメータの上限 ○ ○ ○ 型パラメータの下限 × ○ × 型パラメータの推論 ○ ○ ○ 全ての型のサブタイプ(ScalaにおけるNothing) × ○ × definition-site variance × ○ ○ use-site variance ○(Wildcard) ○(Existential Typ

                                                              JavaとScalaとC#のジェネリクス機能比較表 - Onion開発しつつ、PEGEXを開発する日記
                                                            • 初心者でもほぼ無料でScalaを勉強できるコンテンツ8選 - paiza times

                                                              Photo by Luca Sartoni こんにちは。谷口がお送りします。 プログラミングをこれから学ぼうとしている方や、これから研修や実務に入る新人ITエンジニアの皆さんの中には「Scalaを学習したい」という方も多くいらっしゃるかと思います。 Scalaはオブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語です。 ScalaはJavaの良さを継承し、かつスクリプト言語や関数型言語のメリットを吸収した言語で、Javaの後継を担うものとして注目されています。 Scalaの利点は、Javaの良さを継承しつつ、スクリプト言語や関数型言語の良いところも吸収し、先進的な機能や文法を取り入れている点にあります。また、簡易に並列処理プログラミングを行うことができるライブラリも付属しています。 Scalaは、海外ではTwitterやLinkedInなどが利用していること

                                                                初心者でもほぼ無料でScalaを勉強できるコンテンツ8選 - paiza times
                                                              • Scala開発を始める人におすすめのScala関連情報サイトをまとめてみた - Lambdaカクテル

                                                                id:masawadaにScala+Playのおすすめ情報サイトを聞かれたのでまとめてみる。随時追加の方針です。 @windymelt Scala+Playしたいのだけど、オススメの情報サイトとかありますか?なお、Scala未経験です。— Masayoshi Wada (@masawada) December 4, 2014 追記(12/5 16:56) id:nkgt_chkonkさんにコメントでご助言を頂きました。Akkaの項で紹介しているid:nkgt_chkonkさんの記事中で紹介されているIO周りのインターフェイスは既に古くなってしまい、Akka 2.3では削除されてしまっているとの事でしたので、その旨について該当の項に追記しました。 ご助言をくださったid:nkgt_chkonkさん、ありがとうございました。 訂正(12/5 01:00) id:xuweiさんにコメントでご指摘

                                                                  Scala開発を始める人におすすめのScala関連情報サイトをまとめてみた - Lambdaカクテル
                                                                • Scalaのオブジェクトの話

                                                                  6. 関数型⾔言語との対応 Scala は 1. 関数型⾔言語のパーツをJavaのパーツにマッピングして 2. 使いやすいようにシンタックスなどを整えた⾔言語 パーツ ML Scala 関数 関数 メソッド 関数オブジェクト 代数データ型 ヴァリアント レコード case class case object モジュールシステム モジュール ファンクタ object class ※ Haskellは型クラスによりMLのモジュールシステムと同等の機能を実現可能 (参考) ML Modules and Haskell Type Classes: A Constructive Comparison http://www.cse.unsw.edu.au/~chak/papers/modules-classes.pdf 7. 関数型⾔言語との対応 Scala は 1. 関数型⾔言語のパーツをJavaの

                                                                    Scalaのオブジェクトの話
                                                                  • Scalaで型クラス入門 - still deeper

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

                                                                    • 【Scala】flatMap は怖くない! | DevelopersIO

                                                                      ここで注意が必要なのは「型引数をとる全てのクラス(全ての総称型) ≠ 文脈付きの値」ということです。型引数をとり、文脈付きの値とはいえないクラスも存在します。 たとえば SeqFactory[A] は、 Seq のサブクラス A を生成するファクトリであり、 文脈付きの値ではありません。もっと身近な例を上げると、わたし達が普段よく目にしている(であろう) Provider[A] や Publisher[A] というインターフェイスも、それぞれ「Aを提供するもの」「Aを発行するもの」という意味であり、Aという値を修飾しているわけではないので文脈付きの値とは呼びません。 文脈付きの値を返す関数 親友検索を考える さて、文脈付きの値がどのようなものかわかってきたところで、実際に文脈付きの値を生成する関数を作ってみましょう。 …などと大げさに言ってみましたが、そんなもの、今までだってたくさん作って

                                                                        【Scala】flatMap は怖くない! | DevelopersIO
                                                                      • Webフレームワーク play scala - ヽ( ・∀・)ノくまくまー(2010-05-03)

                                                                        ● [Scala] Webフレームワーク play scala 「play」という凄い Web フレームワークがある。何が凄いかと言うと、まずは名前だ。だって "play" だよ?検索し辛いにも程がある。この衝撃は、http load balancer の "pen" 以来だ。ググっても無駄に時間がかかるので公式サイトを載せておこう。 http://www.playframework.org/ 日常会話にも困る場合があるので、サイト名から「playframework」と呼ばれることが多い。管理者の tw 名も @playframeworkであり、hashtagも #playframework なので、play は単なるコマンド名で、こっちの方が正式名という認識でいいのかもしれない。(gem と rubygems の関係に近い) play scala で、本来 Java 用の play(fr

                                                                        • 竹添さんが紹介してないScalaのWebフレームワークも含めて2015年現在の状況を色々紹介 - xuwei-k's blog

                                                                          ScalaのWebフレームワーク事情 2015年版 - たけぞう瀕死ブログ Scala界隈のWebフレームワークやJsonライブラリは良くも悪くも混沌を極めている(?)わけですが、それにしても竹添さんが紹介してるやつだけでは個人的に不公平感というか、混沌としている感が全然伝わらないと思ったので、全部に詳しい訳ではいですが、自分なりに現状を書きたくなったので紹介しようと思います。 どうせ全部を本当に知り尽くしている人なんでいないので、これはこれで不公平というか偏った見方にもなってるかもしれませんが、そんなこと言ってたらこういう記事をいつまで経っても書けないので、思い切って書くことにしました。 いつもの注意書きですが、あくまでこれ書いてる2015年10月現在の状況であり、1年程度経過しただけで状況は劇的に変化する可能性あるので、ご了承ください。 そもそも、あまりこういうの書きたくないのは、わり

                                                                            竹添さんが紹介してないScalaのWebフレームワークも含めて2015年現在の状況を色々紹介 - xuwei-k's blog
                                                                          • ScalaのWebフレームワーク事情 2015年版 - たけぞう瀕死ブログ

                                                                            ScalaのWebフレームワークについて、昨年某所で書いた記事をアップデートしてみました。マイクロサービスが流行ってきたり、Playは2.4になっていろいろ変わったり、ScalaのライブラリやフレームワークもFutureやモナドを活用したものが増えてきたり等々、この一年でScala界隈のWeb開発事情もいろいろと変化してきています。 Play2 出たばかりの頃はPlay 1.x系でできたことができなかったり、バグだらけだったりでコミュニティでも暴動が起きそうになったものですが、喉元すぎればなんとやら、いまでも使いにくい部分も多いのですが、Typesafe社のお墨付きということもあり、なんだかんだでデファクトスタンダードの位置を確立しているのではないかと思います。 ユーザ数が多いだけあり、プラグインや周辺ライブラリ、Web上での情報等も豊富です。 ただ、Play 2.4でGuiceを使ったD

                                                                              ScalaのWebフレームワーク事情 2015年版 - たけぞう瀕死ブログ
                                                                            • 「Scalaがもたらす言語の進化」というタイトルで発表してきた - Faith and Brave - C++で遊ぼう

                                                                              Scala勉強会第9回 in 渋谷で発表してきました。 まだScalaでがりがりコード書けないので、外の言語からみたScalaの話をしました。 Scala lang evolutionView more presentations from faithandbrave.

                                                                                「Scalaがもたらす言語の進化」というタイトルで発表してきた - Faith and Brave - C++で遊ぼう
                                                                              • Scala変態技法最速マスター - kmizuの日記

                                                                                Java変態文法最速マスターなんてのがかなりブクマされてるみたいだが、変態さならJavaなんてScalaの足元にも及ばないぜ!!ということで、Scala版を書いてみました。しかし、実はあまり変態ではないかもしれません。元ネタと違って、これを読めば何かがわかる、という意味の実用性はあまり無いでしょう。 implicit conversion編 基本 Scalaのimplicit conversionは使いようによってはScalaの強力な型システムを台無しにしてしまう力を持っています。たとえば、 implicit def string2int(x: String): Int = Integer.parseInt(x) というimplicit conversionを定義してやると、"300" / 3が100になるなどというキモい挙動を実現することができます。また、さらにカスタマイズして、16進数

                                                                                  Scala変態技法最速マスター - kmizuの日記
                                                                                • Scalaはなぜ難しいと言われるのか? - たけぞう瀕死ブログ

                                                                                  Scalaをどうやって学ぶのがいいのか?ということはScalaを使い始めた数年前からずっと考えています。よく「Scalaは難しい」と言われますが、 どこが難しいのか? なぜ難しいのか? ということを、これまで書籍や雑誌記事、ハンズオンなど入門用のコンテンツを作ってきた経験を踏まえて整理してみました。 まず、Scalaが難しいといわれる理由のひとつに学ばなくてはならないものが多すぎるという点があげられます。Scalaはオブジェクト指向言語ですが、関数型言語の特徴的な機能を取り入れているため、きちんと理解するには両方の言語のイディオムを学ぶ必要があるためです。 ただ、Scala自体は必ずしも関数型言語の知識がなくても使えるように設計されています。最初はBetter Javaとして一般的な手続き型オブジェクト指向言語の延長として使い始めることができ、Scalaの特徴的な機能に触れていくことで少し

                                                                                    Scalaはなぜ難しいと言われるのか? - たけぞう瀕死ブログ