タグ

scalaとprogrammingに関するtarchanのブックマーク (18)

  • RubyからScalaに乗り換えた15くらいの理由 - Alpha派

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

  • Scalaのトレイトでプログラマをミックスインしてやんよ

    前回のおさらいと今回の内容 前回の記事「Scalaのパッケージ、アクセス修飾子、オブジェクト継承」では、オブジェクト指向言語ではとても重要な機能であるクラスの継承と、Scalaのパッケージについて紹介しました。今回は、Scalaのオブジェクト指向を構成するもう1つの重要な機能、「トレイト」を紹介します。 なお、記事ではオブジェクト指向自体やクラスやインターフェイス、継承の概念、それらに関連した基的な事柄について詳細な説明は行いません。 オブジェクト指向の基礎やインターフェイスについて確認したい方は、以下の記事をご覧ください。 第1回記事では、Scala標準のREPLとScala IDEで動作を確認してみました。今後記事のサンプルコードは、どちらで確認しても問題はありませんが、対話的に実行でき、1文ごとにコードの結果が分かって便利なので、基的にはREPLを用いて説明していきます。 S

    Scalaのトレイトでプログラマをミックスインしてやんよ
  • Scalaのクラスとオブジェクト、パターンマッチ

    前回のおさらいと今回の内容 前回の記事「基的なパターンマッチとScalaで重要な“関数”」では、パターンマッチの使用方法とScalaの関数を紹介しました。今回は、それらの知識を踏まえて、Scalaのクラスとオブジェクトの使い方を紹介します。また、以前紹介したパターンマッチで、オブジェクトをマッチ条件にする方法も紹介します。 なお稿では、オブジェクト指向自体やクラスの概念、それらに関連した基的な事柄は詳細に説明しません。オブジェクト指向の基礎について確認したい方は、以下の記事などをご覧ください。

    Scalaのクラスとオブジェクト、パターンマッチ
  • Scalaの基本的なコレクション4タイプと制御構文・例外

    Scalaの基的なコレクション4タイプと制御構文・例外:スケーラブルで関数型でオブジェクト指向なScala入門(3)(1/2 ページ) 基構文は、まだまだある 前回の記事「Scalaプログラミングで知っておきたい基構文まとめ」では、Scalaの構文ルール、基データ型と配列型の使い方、さらに演算子について紹介しました。今回はScalaのコレクションクラスの基的な使い方、条件分岐や繰り返しなどの制御構文やScalaでの例外の扱い方について紹介します。 第1回記事では、Scala標準のREPLとScala IDEで動作を確認してみました。今後記事のサンプルコードは、どちらで確認しても問題はありませんが、対話的に実行でき、1文ごとにコードの結果が分かって便利なので、基的にはREPLを用いて説明していきます。 Scala IDEを使用する場合、第1回記事の『Scala IDE for

    Scalaの基本的なコレクション4タイプと制御構文・例外
  • Scalaでパーサーを作ってみる 〜目次〜 - きしだのHatena

    Scalaの勉強をはじめたので、とりあえず簡単なパーサーを作ってみてます。 一段落ついたらまとめを作ろうと思ってたのですけど、先も長そうなので、ここいらで目次をつくっておきます。 Scalaでパーサーを作る基 Scalaでパーサーを作ってみる〜1:構文定義 - きしだのはてな Scalaでパーサーを作ってみる〜2:構文木の作成 - きしだのはてな Scalaでパーサーを作ってみる〜3:式の評価 - きしだのはてな 言語要素を組み込んでいく Scalaでパーサーを作ってみる〜4:ブール値とif式 - きしだのはてな Scalaでパーサーを作ってみる〜5:文字列とprintln - きしだのはてな Scalaでパーサーを作ってみる〜6:コードブロック - きしだのはてな プログラム言語に Scalaでパーサーを作ってみる〜7:変数 - きしだのはてな Scalaでパーサーを作ってみる〜8:変

    Scalaでパーサーを作ってみる 〜目次〜 - きしだのHatena
  • 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のソースファイル分割 - ひしだまの変更履歴

    Scalaのちょいネタ。 Scalaでクラス定義のソースファイルの分割っぽいものが出来た。 まぁ、ただ単にクラス内のメソッドを別のトレイトに移して、ミックスインしただけのことなんだけど。そもそもトレイトは実装を持てるのでそういう目的に使うものだろうし。 ポイントは、トレイトから元のクラス内のメンバーにアクセスできるってことだね。自分型アノテーションまじ便利! これを試してみようと思ったのは、クラス内の一部のメソッドだけオーバーロードを作りまくって数が多くなるので、ソース内の見通しが悪くなるから別ファイルに切り出したかったという理由。 これなら切り出したソースファイルを自作ツールで自動生成することもできるようになるので、良さそう。

    Scalaのソースファイル分割 - ひしだまの変更履歴
    tarchan
    tarchan 2011/08/28
    >ポイントは、トレイトから元のクラス内のメンバーにアクセスできるってことだね。自分型アノテーションまじ便利!
  • freerss.net - このウェブサイトは販売用です! - freerss リソースおよび情報

  • Scalaのへんなとこ? - ひしだまの変更履歴

    ひしだまHPの更新履歴。 主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲーム音楽です。 kaminamiさんの「ここがヘンだよScala言語」がなかなか興味深いネタを扱っていたので、自分も(Scala勉強中なので詳しくはないけれど)ちょっと意見を書きたくなったw if式の返り値 自分はScala2.8から勉強を始めたので それより前の事は知らないけれど、以前のバージョンでは「if(true) "a"」がUnitのインスタンスである()を返していたらしい。そりゃ僕も変だと思う^^;(個々人の直感から外れた動作は「変」と表現されてしまうのですな) 「if(false) "a"」の戻り値は()になるので、このif式の戻り値の型は、"a"(String)と()(Unit)の共通の型となる。Scala2.8ではAnyになるが、2.7ではUnitになる仕様だったのだろう

    Scalaのへんなとこ? - ひしだまの変更履歴
  • Java使いをScalaに引き込むサンプル集 | mwSoft

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

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

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

    tarchan
    tarchan 2010/04/28
    >綺麗な仕様してるだろ?動くんだぜ、これで
  • Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~補足編

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

    はじめに 前回に引き続き、Javaの後継候補として注目されているプログラム開発言語「Scala」について説明していきます。今回は、ScalaJavaの代替として使える点(「ベターJava」として使える点)に注目します。 シリーズ前編として、前回はScalaのメリットや、基礎的な文法について説明しました。シリーズ後編となる今回は、プログラムのコンパイルや、データベース接続について扱っていきます。 これまでの連載 Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編 コンパイルとデータベース接続 ここからはプログラムのコンパイルとデータベース接続を扱います。なお、以降すべてのプログラムを実行するためにはエディタの文字コードを、UTF-8に設定する必要があります(UTF-8以外の文字コードでは、日語などの取り扱いに失敗します)。 Scalaでのソースコードの記述

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

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

    Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編
  • 総まとめ:Javaの将来的な後継者としての Scala

    あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

    総まとめ:Javaの将来的な後継者としての Scala
  • Scala開眼

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

  • Web Flavor

    1 概要 2 仕様 3 ダウンロード 4 ライセンス 5 連絡先 6 最後に Appendix 1 概要 ScalaでWebアプリケーションを簡単に作れないか調べていましたが、なかなかいいものがありません。一方JSPのScriptletを使えば数々の問題こそあれ、かなりハードルを下げることができます。 そこでJSPのコンセプトを取り入れ、 Scalaコードをスクリプトとして記述してすぐ実行できる 更新されれば自動的にコンパイルされる という機能を備えたWebフレームワークを作ってみました。 以前のWeb Flavor version 0.1は、Rhino(JavaScript)やJRuby(Ruby)などでも動きましたが、今回はScalaだけに特化し、Scalaの特徴を生かせるよう作られています。 2 仕様 2.1 概要 Java Servletコンテナ上で動作する Java Servle

  • The Scala Programming Language

    val fruits = List("apple", "banana", "avocado", "papaya") val countsToFruits = // count how many 'a' in each fruit fruits.groupBy(fruit => fruit.count(_ == 'a')) for (count, fruits) <- countsToFruits do println(s"with 'a' × $count = $fruits") // prints: with 'a' × 1 = List(apple) // prints: with 'a' × 2 = List(avocado) // prints: with 'a' × 3 = List(banana, papaya)

    The Scala Programming Language
  • 1