タグ

scalaに関するsyohexのブックマーク (17)

  • Scalaでパーサーを作ってみる〜1:構文定義 - きしだのHatena

    Scalaの勉強をはじめました。 で、なんかパーサーコンビネータというのがあるらしく、パーサーが簡単に作れるらしく、じゃあパーサー作ってみるのがScalaの勉強にいいんじゃないかということで、簡単なパーサーを作ってみることにします。 とりあえず構文定義してみます。 今回つくるのは、整数の計算をするパーサーってことにします。整数と、+/-、*、あと()くらいが使えるものにします。割り算を入れないのは、そこは単純に処理を付け加えれば実現できるから。 式の優先順位と、同じ優先度に複数の演算子があればいいってことにします。あと、単項演算子も使いません。めんどうだから。 実装方針は「ソースコードが増えないこと」です。 JavaTokenParsersを使うと、Javaのリテラル表記がそのまま使えるパーサーが作れるらしいんですけど、構文を全部自分で定義したい病気なので、その一階層上のRegexPars

    Scalaでパーサーを作ってみる〜1:構文定義 - きしだのHatena
  • Not the page you're looking for

    I'm quite certain you want to see the Scala on LLVM project.

  • ちょっとしたJavaコードをScalaに書き直してみた - xuwei-k's blog

    元コードはの118ページ目 変数多いぅぉ・・・try catchやifが値を返せばretValとかいらないのに・・・ という「Javaコードを見るとscalaで書き直したい病」が発病したので(・ω・`) 元のJavaコード↓ @Override public int compare(Player o1,Player o2) { float o1A, o2A; int retVal; if(o1.getId() == o2.getId()) return 0; if(o1.hasRole(Player.Roles.Batter)){ try{ o1A = o1.asBatter().getAverage(); }catch(NotEnoughAtBatsException e) { o1A = 0.0f; } } else o1A = 0.0f; if(o2.hasRole(Player.R

    syohex
    syohex 2011/03/07
    確認する
  • Java使いをScalaに引き込むサンプル集 | mwSoft

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

    syohex
    syohex 2011/02/13
    Scalaの基本的なこと
  • (もりそば)Scalaによる高階型変数 - Higher-kind Generics - ( ꒪⌓꒪) ゆるよろ日記

    「ハイヤーーーーーッッ!!!」 と気合いを入れたところで、今日はScalaのコレクションライブラリで多用されている、Higher kind genericsについて軽く解説したいと思いハイヤーーーーーッッ!!! Higher-kind Generics(type constructor parameter)って? まぁぶっちゃけ@kmizu が解説してくれてるのでコレ読んでもらえばおけです。 ScalaのHigher-kind Genericsについて - Togetter そういえば最近Javaでもid:Nagiseによるこんな話がありましたね。 Javaによる高階型変数の実装 - プログラマーの脳みそ Java による高階型変数と Scala とジェネリクス - Togetter 要は、型パラメータを取る型パラメータ(?)が使えるよって話。 trait AttrHelper[+Hold

    (もりそば)Scalaによる高階型変数 - Higher-kind Generics - ( ꒪⌓꒪) ゆるよろ日記
    syohex
    syohex 2011/01/27
  • Scalaのバージョンを簡単に切り替えられる"svm"ってヤツ作った (冷やし中華終わりました) - ( ꒪⌓꒪) ゆるよろ日記

    まぁタイトルの通りなんですが(冷やし中華は終わってます)、RubyだったらrvmとかPythonだったらvirtualenvとか、使うバージョン切り替えられるヤツあんじゃないスカ? Scalaでもあったらいーなーと思ってシェルスクリプトで書きました。Scalaの場合は、依存ライブラリをランタイムのバージョン毎に切り替える必要はないので、単純にSCALA_HOMEを切り替えれば事足りるってー訳で。 ここに置いてあります。 yuroyoro/svm · GitHub この前trunkに入ったDynamic typeの調査をするはずが、何故かシェルスクリプトを書き始めていた……。何を言って(ry 概要 インストールされてるScalaのバージョンを切り替えたり、指定したバージョンをダウンロードしてきたりできます。 こいつを使えば、気軽にnightly buildを試したり、stableに戻ったり、

    syohex
    syohex 2011/01/22
    Scala版 perlbrew, rvm
  • [Scala] Scalaでコードを書きたいけど、どの開発環境がいいの? - かとじゅんの技術日誌

    最近、Scalaが増えてきてますが、早い話こういう話になりますよね。はわかった、コード書かせろとw 実際にコーディングするための開発環境はどれがいいのか、触ってきた感想を超簡単にレポートします。 触った開発環境は以下です。 Eclipse + Scalaプラグイン Emacs + ENSIME NetBeans + Scalaプラグイン IntelliJ IDEA + Scalaプラグイン EclipseのScalaプラグインであるScala IDE for Eclipseは頑張っているようですが、時々応答しなくなるとか、まだ安定性に欠ける感じです。まぁ、時間で解決できるような気がしています。安定するようになれば、インクリメンタルビルドも使えるようになると思うので、かなり期待してます。ですが、今はちょっと実用レベルではないと思います。 Emacs + ENSIMEは結構軽そうで よさげ

    [Scala] Scalaでコードを書きたいけど、どの開発環境がいいの? - かとじゅんの技術日誌
  • オージス総研の本 [プログラミング Scala]

    Dean Wampler, Alex Payne著 株式会社オージス総研 オブジェクトの広場編集部訳 オライリー・ジャパン 定価 3,990 円(税込) 2011/01出版 ISBN:978-4-87311-481-1 原著:https://oreilly.com/catalog/9780596155964 まえおき オブジェクトの広場編集部の有志で O'Reilly Media Inc. の『 Programming Scala 』の翻訳を行いました。 Scala はオブジェクト指向と関数型を高度に融合させたハイブリッドの言語で、Java の次の言語として非常に注目されています。 書『プログラミング Scala 』はこれから Scala を始める方、さらにScalaについて深く知りたい方に向けた Scala の入門書です。 Scala2.7と2.8に対応しています。 今回オライリー・ジ

    syohex
    syohex 2011/01/14
    プログラミングScala(オライリー)の紹介
  • リストモナドを使ってみる - みずぴー日記

    このエントリはScala Advent Calendar jp 2010 : ATNDの25日のものです。 メリークリスマス! クリスマスは楽しくみんなでパズルを解いて遊びましょう。 パズルみたいな探索問題をScalaで解く場合は、リストモナドを使うとキレイに書けます。 例: SEND+MORE=MONEY 例として覆面算を解いてみましょう。 各アルファベットに異なる数字が割り当てれる。その数字は何か? ただし最上位桁が0ではない。 普通にforループを使って解くと、ネストの深さが酷いことになります:)。 // int(1,2,3)を123にする関数 def int(xs : Int*) : Int = xs.foldLeft(0)( _ * 10 + _) // SEND+MORE=MONEYの答えを探索する def solve : (Int,Int,Int) = { for( s <-

    リストモナドを使ってみる - みずぴー日記
    syohex
    syohex 2010/12/28
  • 第17回scala勉強会 - xuwei-k's blog

    プログラミング楽しいですねヽ(´ー`)ノ 第17回の勉強会が内容濃くて楽しかったのに、ustreamの配信ができなかったので、記録残しておきます。ust期待してた人はすいませんでした(´・ω・`) ちょっと前にblogにも書きましたが、scalaでのSTM(software transactional memory)についてやりました。 で、 スライド用意してない じゃあust用のパソコンにscalascalaSTM入れて動かしてデモしたいよね けどインストールできないまま、数十分経過・・・ もうしょうがないからustなしで始めるかぁ・・・ っていう流れでなしになりましたすいません(´・ω・`) 前半の1時間20分くらい(?)は、scalaのSTMのサイトのサンプルのこのページと、このソースを、みんなで読んだり、実際に動かしてみました(・∀・) scalaのSTM ここの解説にあるように

    第17回scala勉強会 - xuwei-k's blog
    syohex
    syohex 2010/12/24
  • MacRuby: The Definitive Guide

    More than 5,000 companies count on our digital courses and more to guide their teams through the tools and technologies that drive business outcomes. We can help yours too. New AI policy for O’Reilly authors and talent O’Reilly president Laura Baldwin shares the company’s ethical approach to leveraging GenAI tools and ensuring O’Reilly experts are compensated for their work. See it now It’s time t

    MacRuby: The Definitive Guide
    syohex
    syohex 2010/12/20
    oreillyのプログラミング Scalaの無料版。ただし英語。
  • Ten Things I Know: Scala どうしても副作用があるコードを書かないといけない場合に使うと便利かもしれないもの

    2010年12月10日金曜日 Scala どうしても副作用があるコードを書かないといけない場合に使うと便利かもしれないもの (この記事は Scala Advent Calendar jp 2010 の4日目です。) Scalaでは(というよりは関数型言語では)副作用があるコードを書かないことを推奨していますが、JavaAPIを使う場合などにどうしても副作用があるコードを書かないといけない場合があると思います。 そんなときに役に立つかもしれないのがwithActionsとtapsです。 implicit def tToActioneerT[T](t: T) = new Actioneer(t) class Actioneer[T](tee: T) { def withAction(action: (T => Unit)): T = withActions(action) def wi

    syohex
    syohex 2010/12/15
  • Lift Web フレームワーク :: ホーム

    Lift とは Lift は、Web アプリケーションを記述するための表現力に富んだエレガントなフレームワークです。Lift アプリケーションには、次のような特徴があります。 セキュア -- Lift アプリケーションは、OWASP の10大セキュリティ脆弱性の多くをはじめ、一般的な脆弱性に対する耐性があります。 開発者中心 -- Lift アプリケーションは迅速に構築でき、簡潔で、メンテナンスが容易です。 スケーラブル -- Lift アプリケーションはパフォーマンスが高く、現実の運用でも強力な柔軟性を発揮して膨大なトラフィックを処理できます。 デスクトップアプリケーションのようにインタラクティブ -- Lift の Comet サポートはほかに例のない優れたもので、Ajax サポートも非常に簡単、しかもセキュアです。 上のような特徴を Lift がどのようにして実現しているか興味を持っ

  • ensimeで補完生活 - papamitra

    追記(2010/09/05): ensimeは開発&変化のスピードが早く、ここに掲載されている設定ファイルはすでに一部が無効になっています。正しい設定ファイルの書き方はマニュアルを参照してください。 最近話題になってるemacs上のScala開発環境「ensime」をAndroidプロジェクトで試してみました。 どんな感じかっていうのは言葉よりも画像で見てもらったほうが早いでしょう。 補完してくれたり、 クラスの概要を表示したり、 コンパイルエラーの指摘なんかもしてくれます。 画像を見てもらってもわかるとおりandroidライブラリに対しても補完などが効きます。 インストール方法 http://aemon.com/file_dump/ensime_manual.html#tth_sEc2 事前にscala付属のscala-modeは設定しておいてください。 http://github.co

    ensimeで補完生活 - papamitra
  • scalaで、コップ本(第一版)に書いていないけど重要だと思うこと - xuwei-k's blog

    結構前に、日語版の第二版がでていないときに書いて、内容が古い部分がありますが、めんどくさいのでそのままにしておきますよーーー。というか日語版の第二版でるので、とにかくそれ買いましょうーーーここに書いた不満点(?)がだいぶ解消されているんじゃないかと思います(`・ω・´) Scalaスケーラブルプログラミング第2版 作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘出版社/メーカー: インプレスジャパン発売日: 2011/09/27メディア: 単行(ソフトカバー)購入: 12人 クリック: 235回この商品を含むブログ (46件) を見る 真面目に、scalaを普及させるにはどうすればいいかを色々考えてる今日この頃(`・ω・´) 今でもコップscala格的に勉強するには、一番いいですが、色々足りない部分もあります

    scalaで、コップ本(第一版)に書いていないけど重要だと思うこと - xuwei-k's blog
    syohex
    syohex 2010/11/09
    バージョン 2.8での追加事項など。
  • 刺激を求める技術者に捧げるScala講座---目次

    連載では,次世代のエンタープライズ・プラットフォームを支える言語として,このところ最も注目を集めている言語「Scala」の魅力をお伝えしていきたいと思います。Scalaは,技術的にもかなり刺激的で,楽しい言語に仕上がっています。最初の一歩から刺激的な技術解説まで,幅広くScalaおもしろさ,楽しさをお伝えしたいと思います。 第1回 なぜScalaなのか? 第2回 Scalaの基的な文法 第3回 Scala言語を探検する(1) 第4回 Scala言語を探検する(2) 第5回 Scala言語を探検する(3)関数型言語としてのScala 第6回 Scala言語を探検する(4)Scalaの型システム 第7回 関数脳のつくり方 First Season 第8回 Scala DSLでできること 第9回 Scala DSL事始め(前編) 第10回 Scala DSL事始め(後編)

    刺激を求める技術者に捧げるScala講座---目次
  • Scala開眼

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

    syohex
    syohex 2010/05/05
  • 1