タグ

scalaに関するmasa0x80のブックマーク (54)

  • Heroku、クラウドでScalaにも対応。これで6言語目

    同社は今月、Pythonのサポートも発表したばかりで、これでRuby、Clojure、JavaPythonJavaScript(Node.jsによる)に続く6言語目の対応となります。 ScalaJava VM上で動作する言語で、「オブジェクト指向プログラミングと関数型プログラミングを巧みにブレンドした言語」だとHerokuは説明しています。同社はすでにJava VMでJavaとClojureの対応を行っており、Java VMの存在が多言語対応のポイントになっています。 Facebookアプリケーションのホスティングで急成長 Herokuは9月にFacebookとの協業を発表し、Facebookアプリケーションのデフォルトのホスティングサービスとして指定されています。 その結果、Herokuによると協業発表後の24時間で3万3800種類の新しいアプリケーションがHeroku上にホスト

    Heroku、クラウドでScalaにも対応。これで6言語目
  • Scala matchメモ(Hishidama's Scala match Memo)

    概要 [/2017-01-29] 数値のマッチング [/2017-01-31] match式の値 [/2020-10-01] 数値以外のマッチング [/2011-02-27] 型のマッチング [/2011-08-15] マッチした値の取得 [/2017-01-29] ガード条件(if) [/2017-01-29] matchの省略 [/2017-02-02] unapply・unapplySeq [/2017-01-29] 概要 match式は、値に応じて処理を分岐させる。 単純に値が一致するかどうか(Javaswitch相当)だけでなく、パターンマッチングで色々な条件でマッチさせることが出来る。 値 match { case パターン1 => 処理1 case パターン2 => 処理2 ~ } matchは「式」なので、値を返すことも出来る。 val 変数 = 値 match { ca

  • S-99: Ninety-Nine Scala Problems

    These are an adaptation of the Ninety-Nine Prolog Problems written by Werner Hett at the Berne University of Applied Sciences in Berne, Switzerland.  I (Phil! Gold) have altered them to be more amenable to programming in Scala.  Feedback is appreciated, particularly on anything marked TODO. The problems have different levels of difficulty.  Those marked with a single asterisk (*) are easy.  If you

  • Scala の内面を Haskell 化する話 - akihiro4chawonの日記

    Scala を使って Haskell 風の記述をしている例を時々見かけるけれど、徹頭徹尾 Haskell になっている例はあまり見掛けない。アプリケーションロジックだけ見れば同じなんだけれど、実際の内部動作は全然違っていたりする。そして、パフォーマンスが致命的に劣っていたりすると、悲しくてやりきれない気持ちになる。Scala は、当は出来る子なんですと。 そこで、Haskell っぽい記述に耐えうる Scala Library を整備していこうと思う。 循環無限リストの整備 Haskell の無限リストのつもりで Scala の Stream を使うと、こんな落とし穴が待ち受けている。 例えば、無限リストの第1000000*1000番目が欲しいとき、Haskellならば、メモリ不足にはならないんだけれど、 Prelude> repeat 42 !! (1000000*1000) 42Sc

    Scala の内面を Haskell 化する話 - akihiro4chawonの日記
  • Scala 2.8 コレクション API -- ストリーム

    ストリーム (Stream) はリストに似ているが、要素は遅延評価される。そのため、ストリームは無限の長さをもつことができる。呼び出された要素のみが計算される。他の点においては、ストリームはリストと同じ性能特性をもつ。 リストは :: 演算子によって構築されるが、ストリームはそれに似た #:: 演算子によって構築される。以下は、整数の 1, 2, 3 からなる簡単なストリームの例だ:

  • やはりRubyでは 〜Scalaの無名関数に憧れて〜 | netswitch!

    この例では、:to_s は Symbol だが、Proc を返すSymbol#to_proc を定義しておくと、それが呼ばれてよしなにしてくれる。Symbol#to_proc はActiveSupport などで定義されているので、Rails使いにはおなじみだろう。 この仕組みを利用して、 _ に対して送られるメッセージを保存しておいて、to_proc される時に適当なProcを返すような何かを作ればよい。 module Scala class LazyCall instance_methods.each do |v| undef_method(v) unless %w(__id__ __send__).include?(v) end def initialize(v = nil) @v = v @msgs = [] end def method_missing(*args, &block

  • Scalaプログラミング入門

    Martin Oderskyによる 関数型かつオブジェクト指向プログラミング言語 Java 1.1–1.4コンパイラの開発者 Pizzaの開発者 (Philip Wadlerと共同) オープンソース 活発に開発が行われている 応用 Twitterの分散DBフレームワークGizzardはScalaで記述されている Foursquare, Tumblr, LinkedIn, Amazon, VMware, はてな, ドワンゴなどでも利用されている WebアプリケーションフレームワークとしてPlayなどがある プログラミング言語別年収ランキング 2017年は1位, 2018年は2位 言語の特徴 関数型プログラミング言語とオブジェクト指向プログラミング言語の融合 強力な型推論 高階関数 Immutable Collections 並行計算 Java言語もJava 8から,関数型プログラミングの特徴

  • Scala - Wikipedia

    Scala(スカラ、SKAH-lah[3])はオブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。名前の「Scala」は英語の「scalable language」に由来するものである。 プラットフォーム[編集] 主にJavaプラットフォーム(Java仮想マシン)上で動作し、既存のJavaのプログラムと容易に連携させることができる。 対応プラットフォーム Scala - Javaプラットフォーム Scala.js[4] - Scala から JavaScript へとトランスパイルする。 Scala Native[5] - LLVM を使用し、マシンネイティブの実行ファイルを出力 また、過去には下記のプラットフォームもサポートしていたが、現在は開発が中断している。 .NET Framework[6] Java Platform, Micro Edit

    Scala - Wikipedia
  • Scala メモ

    Scala メモ Last Updated : 2009/5/31 (2006/7/4 より執筆開始) asato <asatohan at gmail.com> 内容に関するコメント(感想、提案、書き間違いの指摘)は歓迎します。 実験環境 例 - Class 例 - Trait 例 - Case Classes 例 - Generic Types and Methods (2009/3/14 更新 ) 例 - Pattern Matching (2009/3/14 更新 ) 例 - Method Values 例 - Higher-Order Functions 例 - Anonymous Function Syntax 例 - Currying 例 - Repeated Parameters 例 - By Name Parameters 例 - Implicit Parameters

  • Java使いをScalaに引き込むサンプル集 | mwSoft

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

  • 『プログラミングScala』は腰を据えたScalaの学習に最適 - kaisehのブログ

    1/20発売予定のオライリージャパンの新刊、『プログラミングScala』を献いただきました。 プログラミングScala 作者: Dean Wampler,Alex Payne,株式会社オージス総研オブジェクトの広場編集部出版社/メーカー: オライリージャパン発売日: 2011/01/20メディア: 大型購入: 3人 クリック: 320回この商品を含むブログ (38件) を見る このの敷居ははっきり言って高く、『Scalaスケーラブルプログラミング』に近いレベルだと思います。その難しさは、Scalaの型システムと関数型プログラミングを正面から解説しているところから来ています。重いテーマなので後回しにしたくなりますが、この部分の理解が曖昧なままでは、結局、いつまで経ってもScalaを理解したことにならないので、書や『Scalaスケーラブルプログラミング』のような正面突破のアプローチは正

    『プログラミングScala』は腰を据えたScalaの学習に最適 - kaisehのブログ
  • ScalaでWebM形式の動画再生 - はこべにっき ♨

    それなりにたいへんそうで勉強になるかと思い、ScalaでWebM形式の動画を再生するコードを書いてみた。やりたくなったから、やっただけなので特に有用性とかはないです。 WebMのデコーダを準備する Javaで、WebM形式の動画を扱うには gstreamer-java が使える。 gstramer-java はネイティブのgstreamerを呼びだすのでインストールする。また、gstreamerがWebM形式の動画をデコードできるように、デコーダもインストールしておく。 WebMデコーダのインストール WebMのデコーダ(libvpx)のソースコードをcloneしてビルド/インストール。 $ git clone git://review.webmproject.org/libvpx.git $ cd libvpx $ ./configure $ make $ sudo make insta

    ScalaでWebM形式の動画再生 - はこべにっき ♨
    masa0x80
    masa0x80 2010/07/11
    RT @con_mame: ScalaでWebM形式の動画再生 - はこべにっき#
  • Twitterが分散フレームワーク「Gizzard」公開! Scalaで書かれたShardingを実現するミドルウェア

    Twitterが分散フレームワーク「Gizzard」公開! Scalaで書かれたShardingを実現するミドルウェア Twitterは独自に開発した分散フレームワークの「Gizzard」をオープンソースとして公開しました。GizzardはScalaで書かれたJavaVM上で動作するミドルウェアで、PHPRubyといったWebアプリケーションからの要求を自動的にデータベースに分散することで、大規模で可用性の高い分散データベースを容易に実現するためのものです。 Gizzard:フォルトトレラントな分散データベースを実現 The Twitter Engineering Blog: Introducing Gizzard, a framework for creating distributed datastores Twitterのブログにポストされた「Introducing Gizzard

    Twitterが分散フレームワーク「Gizzard」公開! Scalaで書かれたShardingを実現するミドルウェア
  • RubyからScalaに乗り換えた15くらいの理由 - ヽ( ・∀・)ノくまくまー(2010-04-26)

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

  • Scala言語を学ぶやさしいツール「Kojo」が無償公開

    オブジェクト指向言語と関数型言語の特徴を備えたプログラミング言語「Scala」は、JavaVM上で高速に動作する生産性の高い言語として最近注目されている言語です。 Scalaは静的型付け言語としての高速性を実現しつつ、非常に柔軟なプログラミングが可能で、オブジェクト指向言語としてコードが記述できると同時に関数型言語の機能も発揮できるとされており、これらが高い生産性につながるといわれています。 また、関数型言語は並列処理を記述するのに適したプログラミング言語としても注目されています。 そのScalaを、子ども向けにやさしくプログラミングを学ぶための言語として採用したオープンソースの統合学習環境「Kojo」が、無償公開されています。 タートルグラフィック機能を搭載 Kojoは、いわゆるタートルグラフィックス機能を標準で備えたScala言語のサブセットで、タートルに命令を与えると画面上にグラフィ

    Scala言語を学ぶやさしいツール「Kojo」が無償公開
  • Scala的な考え方 - Scalaがとっつきにくいと思っている人へ - ( ꒪⌓꒪) ゆるよろ日記

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

    Scala的な考え方 - Scalaがとっつきにくいと思っている人へ - ( ꒪⌓꒪) ゆるよろ日記
  • [Scala] Twitterの移行について

    ずいぶん前の話題だが、TwitterのバックヤードScala化に関する記事の要点整理をしてみた。 >>前提 Twitterは、フロントはRailsに依存しており、逆にOffload観点から、キャッシュの失効処理等に、キューイングの仕組みを使った非同期処理が多数あり、それだけデーモンアプリが必要となるシステム構成。 >>なぜ移行?(システム的理由) RubyGreenThreadでカーネルスレッドを使うことはできず、プロセッサに依存してしまい、マルチコア環境での性能が出ない。これに対処するため複数プロセスを上げる方向に行くのだが、そうなるとメモリが大量に必要となり、さらにRubyのガベコレ性能が(Javaのそれに比べて)悪いこともあり、限界を感じていた。 (これに対し)JVMは、スクリプト言語が苦手とする長時間動かし続けるデーモンアプリを書く環境として適切。 また、動的型付けにより必要とな

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~

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

    第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~
  • 第1回 なぜScalaなのか?

    大手SIベンダにてSEやPMやアーキテクトとして勤務したのち,現在は株式会社豆蔵のチーフコンサルタント。主に超上流のプロセスである要求開発やオブジェクト指向,アジャイル開発のコンサルタントとして活躍中。開発の現場にこだわり,開発の現場を少しでもよくしたいと日夜奮闘している。要求開発アライアンス 執行委員。著書に『オブジェクト脳のつくり方』や『eXtreme Programming実践レポート』(ともに翔泳社発行。後者は共著)などがある。 連載では,次世代のエンタープライズ・プラットフォームを支える言語として,このところ最も注目を集めている言語「Scala」の魅力をお伝えしていきたいと思います。Scalaは,技術的にもかなり刺激的で,楽しい言語に仕上がっています。最初の一歩から刺激的な技術解説まで,幅広くScalaおもしろさ,楽しさをお伝えしたいと思います。 Scalarはじめの一歩 S

    第1回 なぜScalaなのか?