タグ

scalaに関するtyageのブックマーク (12)

  • 圏論とかモナドなんて簡単だからscalaを使って説明してみた - だらだらしてたいなぁ

    はじめに 関数型といえばモナド、モナドといえば難しいという事が巷で言われていますが、いきなりモナドを理解しようとするから難しく思えるだけで、圏論から順序を追って理解していけば全然難しく無いんだよって事を分かって貰えればいいなぁと思い書いて見ることにしました。 ただ、圏論といっても適用範囲がとっても広く、応用編になると分けわかんなくなってくるので、ここではプログラミング分野に特化したFP(functional programing)圏論*1について書きます。 また、説明を簡単にする為に細かい部分をいろいろ省略しています。学術的な定義としては正確ではないので、このエントリの説明は大体合ってる位の気持ちで読んでくださいね。 尚、ぼくは圏論の詳しい事はさっぱり分からないので、学問的な話を振られても回答できませんキリッ 圏ってなんなの? 圏論と言えば、圏です。 圏って何なのかというと、対象(obje

    圏論とかモナドなんて簡単だからscalaを使って説明してみた - だらだらしてたいなぁ
    tyage
    tyage 2013/04/08
  • ここがヘンだよScala言語 - 駄文生産所

    Scalaを触ったり言語仕様を眺めた上で、ストレスを感じたものをいくつか挙げる。おそらくコミュニティでの議論は既に終了しているであろうし、無意味な作業に感じられて仕方がないが、某所でまとめると言ってしまったので、我慢して進める。 突撃されると面倒なので一応述べておくが、別にScalaがダメだとか、Scalaが使えないとか言いたいわけではない。この程度の訓練は必要なのだ、ということだ。 追記 びっくりするほどのバカだと思われている節があるが、ScalaJavaの思想を知った上で、あえて記述している部分も多分にある。一応。 捉え違いしている部分や、Scala的な考え方が知りたい方は、コメントをご覧になるのが良いでしょう。 if式の返り値 val v1 = if (1 < 2) {"a"} println(v1) val v2 = if (1 < 2) {"a"} else {"b"} pri

    ここがヘンだよScala言語 - 駄文生産所
    tyage
    tyage 2011/06/12
  • Java使いをScalaに引き込むサンプル集 | mwSoft

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

  • inforno :: 日本語プログラミング言語Scala

    via 第20回 日語でおk Ruby もいいけど Smalltalk でも、おk。 Scalaはメソッド名に日語使えるよ。Scalaは日語プログラミング言語だよ(言いすぎ)。 1object JapaneseLanguage { 2 class Standard[A](self:A) { 3 def の[B](f:(A) => B) = f(self) 4 def を[B](f:(A) => B) = f(self) 5 def する() = () 6 } 7 8 class PseudoKansai[A](self:A) { 9 def のな[B](f:(A) => B) = f(self) 10 def をな[B](f:(A) => B) = f(self) 11 def すんねん() = () 12 } 13} 14 15 16def 平方根(v:int) = Math.sq

  • Scalaで&lt;:&lt;とか=:=を使ったgeneralized type constraintsがスゴすぎて感動した話 - ( ꒪⌓꒪) ゆるよろ日記

    Scala2.8から、Predefに<:<とか=:=とかが定義されていて、これなんだろ?とずーっと疑問だった訳ですよ。で、ついったーで質問投げてたらやっと理解できました。 教えて頂いた @ScalaTohoku さん、@okomok さん、@tioa さん、有り難うございました! "generalized type constraints"というヤツで、型パラメータに与えられた型が、特定の条件を満たす場合にのみ呼び出せるメソッドを定義できるというものです。しかもコンパイル時に静的にチェックされる!! これはスゴい!! What do <:<, <%<, and =:= mean in Scala 2.8, and where are they documented? - Stack Overflow =:=や<:<や<%<で特定の型のみ呼び出せるメソッドを定義する 具体的な例で説明します。

    Scalaで&lt;:&lt;とか=:=を使ったgeneralized type constraintsがスゴすぎて感動した話 - ( ꒪⌓꒪) ゆるよろ日記
    tyage
    tyage 2010/09/18
  • 今からでも遅くない これから始めるScala(前編)

    なぜ、いまScalaなのか? TwitterScalaを利用しているのは有名ですが、他にも位置情報を利用したfoursquareはScalaで構築されたLiftというWebフレームワークを利用していますし、GTDツールとして有名なRemember The MilkもScalaの利用を検討しているようです。 Scalaは、Java Virtual Machine(以下JVM)上で動くオブジェクト指向+関数型言語です。簡潔で柔軟な記述が可能であり、マルチコアを意識したライブラリがあり、JVMでのスケールメリットを享受できることが、これらの企業で採用に踏み切った理由であると考えられます。 Scalaは、非常にバランスの取れたプログラミング言語です。連載では、Scalaの基的な文法を解説しながら、オブジェクト指向と関数型言語を組み合わせたプログラミングスタイルについて、解説したいと思います。

    今からでも遅くない これから始めるScala(前編)
    tyage
    tyage 2010/06/21
  • プログラミング言語 「天使ちゃんマジ天使」と「ブブゼラ」を作ってみたよ - ( ꒪⌓꒪) ゆるよろ日記

    今AngelBeats!見てます。天使ちゃんマジ天使でいいと思います。 で、だいぶ前に作ったScala版のちょっと草植えときますね型言語 Grassを改造して、プログラミング言語 「天使ちゃんマジ天使」とプログラミング言語 「ブブゼラ」を作ってみたよ。 Grassは、id:uenoB 作の型無しラムダ計算がベースをした関数型言語らしいです。(6/22追記) ちょっと草植えときますね型言語 Grassについてはこちら。 世界で最初のGrassプログラム - Garage uenoB ちょっと草植えときますね型言語 Grass プログラミング言語 「天使ちゃんマジ天使」 ちょっと草植えときますね型言語 Grassの派生言語というかまんまです。 Grassで使用する文字(w,W,v)をそれぞれ(天使, マジ, ! )に置き換えただけです。 wを出力するプログラム: 天使ちゃんマジマジ天使天使ちゃ

    プログラミング言語 「天使ちゃんマジ天使」と「ブブゼラ」を作ってみたよ - ( ꒪⌓꒪) ゆるよろ日記
  • 関数型プログラミングの楽しみ方(Scala編):第1回:Scalaって楽しい? | 豆蔵ソフト工学ラボ

    関数型プログラミングの楽しみ方(Scala編) 第1回:Scalaって楽しい? 印刷 株式会社豆蔵 BS事業部 コンサルタント 小林 健一  2010/06/03 [プログラミング] はじめに 特集記事では、新しいプログラミングの可能性を信じて努力する方のために、 ちょっと変わった、しかし強力で実用性のあるプログラミング言語、 Scalaを紹介します。 ここ最近、業務で使っている言語以外でプログラミングしていない方、 「言語はC、Java、VB、COBOLだけおさえておけばOK」という方はぜひ、 この機会にScalaに触れてください。新しい発見が山ほどありますよ。 今回は、まずScalaの概要を紹介します。 言語なんてJava,C,VB,COBOLだけおさえておけばOKでしょ? 現在、プログラミング言語の中で大きな比率を占めているものとしてJava、C、VB、COBOL、あとはPHP、R

    tyage
    tyage 2010/06/13
  • Ruby より Scala がいいって?? - たかみやの日記

    RubyからScalaに乗り換えた 15 くらいの理由 という記事がすごいブックマーク数だったので、「Scala というのは Ruby を改善したすごい言語なのかな?」と思って超期待して読んですけどもいきなり「メソッドの引数に型指定ができる Scala はエラい」とか言い出しててガッカリしました。。。そもそも Scala は静的型付けで関数型、Ruby は動的型付けで手続き型とパラダイムがまるっきり違い、その守備範囲も異なります。プログラムを書きたいけどあらかじめ問題の定義がよくわかんないとか (人工知能など)、プロトタイプを早く仕上げることがビジネスてきに価値がある場合には当然 Lisp や Ruby などの動的型付けの言語を使うだろうし、大規模プロジェクトでメンバーがいっぱい、スキルもばらばらというケースで形式的なミスをなくしたい場合には JavaScala など静的型付けの言語

  • Scalaチートシート (via 「Scala開眼」) - ヽ( ・∀・)ノくまくまー(2010-05-02)

    ● [Scala]「Scala開眼」が凄い件 Scala の深い部分を検索すると必ずヒットするサイト 「Scala開眼」 http://www.h7.dion.ne.jp/~samwyn/Scala/scalaindex.htm が凄すぎる。この人は何者なの?文章を少し読むだけで只者じゃないことがわかる。一言にすれば天才。 Scalaへの深い理解を持ち 多方面の膨大な背景知識を武器に 圧倒的な概念の整理力と 優れたワードセンスと表現力で 体系的に形式的にScalaを説明している 特に、凡人なら10行くらいかけてグダグダ説明しそうなものを、片っ端から漢字2文字ぐらいの言葉で簡潔かつ的確に表現(説明)していくその姿には畏敬の念すら感じる。入門書だけでは「Unit型」が結局何なのか理解できずにモヤモヤとしていたのだが、このサイトには概念の理解を最優先にする姿勢が見え、誤解を恐れない直球な説明に鼻

    tyage
    tyage 2010/05/05
  • Scala開眼

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

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

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

  • 1