タグ

Scalaに関するNagiseのブックマーク (54)

  • Scala言語の入門書の紹介 - HHa(H派)メモ

    オブジェクト指向と関数型が美しく融合したJVM上の実用言語Scalaを勉強するのによい 資料・記事をまとめてみます。 ◎まずとりあえず最初に読むもの(どれも日語) ●InfoQ:なぜScalaなのか? 作者 Ian Roughley, 翻訳者 白石 俊平 http://www.infoq.com/jp/news/2008/01/why-scala ●【新・言語進化論】次にくる!新登場言語 第3回:オブジェクト指向と関数型を兼ね備えた「Scala」 著者: ether http://www.thinkit.co.jp/free/article/0711/4/3/ ●A Scala Tutorial for Java programmers (宮隆志さんが和訳されたものです) http://homepage.mac.com/takashi_miyamoto/scala/ScalaTutor

    Scala言語の入門書の紹介 - HHa(H派)メモ
    Nagise
    Nagise 2009/07/27
    「実はもう1件、日本語のScala紹介記事があるがちょっと間違いが多いので気をつけて読んでください。」ちょw
  • http://atnd.org/events/1156

    http://atnd.org/events/1156
  • Scala のXMLリテラル - hidemonのブログ

    ScalaにはXMLをリテラルとして書く機能がある.文字列としてではなく,XMLのオブジェクトとして直接解釈される.具体的には scala.xml.Elem という型になるようだ.しかも,Scalaの式を'{','}'で囲んで埋め込むことができる. 下記はReferenceからの引用. val b = <book> <title>The Scala Language Specification</title> <version>{scalaBook.version}</version> <authors>{scalaBook.authors.mkList("", ", ", "")}</authors> </book>なんらかのクォートで囲むでも無く,いきなり書くことができる. おかしな(?)挙動 パーザは,XMLの開始っぽい部分を発見するとXMLモードに入る.なのでこんな変なことが起こる

    Scala のXMLリテラル - hidemonのブログ
    Nagise
    Nagise 2009/07/21
    プログラミング言語のシンタックスを考えるときにはパーサビリティが必要だと思うんだ。IDEとかも作りやすいしね。
  • http://cappuccino.jp/keisuken/logbook/20090718.html

    Nagise
    Nagise 2009/07/21
    口は勉強会の元。いや、文字情報で発信しているから口とは違うか。
  • Scala の改行 - hidemonのブログ

    Scala言語のreferenceを読んでいたら結構びっくりだったので書いておこう. C系の言語では,改行はスペースと等価で基的に意味を持たない.文字列の途中でもない限り,どこに改行を入れても大丈夫.Javaも分布的にはC系なので同じ.これがPython になると行とインデントに強い意味がある. で,Scalaの文法はブロックの書き方がCっぽいので,なんとなく改行の扱いも同じような感じかと思ったら全然そんなことはなかった.C系の言語では';(セミコロン)'を文のターミネータにしている.ところが,Scalaでは';'が省略でき,改行をターミネータにすることができる.このため話がややこしくなっているようだ.以下言語仕様の1.2より. Scalaでは以下の条件が満たされた場合に,改行が特殊なトークン'nl'として扱われる. 直前のトークンが文のターミネータであり得る 直後のトークンが文の開始で

    Scala の改行 - hidemonのブログ
    Nagise
    Nagise 2009/07/17
    プログラにおいて複数行にまたがるコードが少数派なのを考えれば;を常時付けるのは不合理なのだけど、変に省略可能にするとハマるという話。VBみたいに次行に続く場合を記述する方式のほうが合理的かも
  • 総まとめ:Javaの将来的な後継者としての Scala

    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が最近リリースされ、重要な変...

    総まとめ:Javaの将来的な後継者としての Scala
  • Scala-ja - Scala勉強会@電網-1

    概要 プログラミング言語「Scala」を肴にして濃い話題を取り上げたいと思います。 日付2008年8月中旬(土) 14:00頃から3時間程度 (8/15か8/22を考えています) 会場教えません(場所には興味ありませんw) 対象中級者以上、何かのプログラミングを作ったことがある方、Scalaに興味ある方 会費無料 定員10名程度 講師keisuken (西 圭佑) 内容 形式ばらずざっくばらんとした雰囲気でやるので、気軽に参加ください。 基的にテーマについてだらだらやります 内容未定ですので要望をどしどしお書きください 事前準備 Scalaランタイムのインストール会場にNote PCを持ち込んで勉強する場合、「Scalaランタイムのインストール」を参考にして、インストールしておいてください。 Scalaドキュメントのダウンロード「The Scala Language Specifica

    Nagise
    Nagise 2009/07/13
    物理的距離など問題じゃない。そうだろう?
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    Nagise
    Nagise 2009/07/01
    Scalaちゃん×じゃばこでお願いします。
  • Scalaでコンパイル時アサーション - kmizuの日記

    以前にMetaScalaで見かけて、なるほどーと思ったテクニック。実装は非常に簡単。 scala> type assertEq[A, B >: A <: A] = Nothingたったこれだけ。説明は不要だと思うが、Scalaだと、型パラメータのlower boundとupper boundの両方を指定できる事を利用して、BはAのサブタイプかつスーパータイプでなければならないという指定によって、型Aと型Bが等しい事をassertしている。使い方は以下のような感じ。 scala> type x = assertEq[Int, Int] defined type alias x scala> type x = assertEq[Int, String] <console>:5: error: type arguments [Int,String] do not conform to type

    Scalaでコンパイル時アサーション - kmizuの日記
    Nagise
    Nagise 2009/06/04
    型の境界の不等式が気になる。そろそろプログラム言語で演算子に使う記号が足りなくなってきているような気がする
  • Example8.5 - プログラミング言語 Scala Wiki

    8.5 タプル (Tuples) 関数から1つ以上の結果を返す必要がたまに生じます。たとえば、与えられた2つの整数引数の整数商と余りを返す関数 divmod を考えましょう。もちろん、divmod の2つの結果を保持するクラスを次のようにも定義できます。 case class TwoInts(first: Int, second: Int) def divmod(x: Int, y: Int): TwoInts = new TwoInts(x / y, x % y) しかし、結果型のペア一つ一つに対し、新しいクラスを定義しなくてはならないのでは、あまりに面倒です。Scala ではその代わりに、次のように定義されたジェネリッククラス Tuple2 を使えます。 package scala case class Tuple2[A, B](_1: A, _2: B) Tuple2 を用いて di

    Example8.5 - プログラミング言語 Scala Wiki
    Nagise
    Nagise 2009/02/13
    Scalaのタプル。どうも自分にはタプルのメリットが理解できないな。匿名であるというメリット以上の価値を見いだせない。
  • forでパターンマッチを使う - kmizuの日記

    あまり知られていないが、実はScalaのfor式の<-の左の部分にはパターンを書くことができる。たとえば、SomeとNoneが入ったリストから、Someな要素だけを抽出してprintするというコードは次のように書くことができる。 val list = List(Some(1), None, Some(3), None, Some(5)) for(Some(v) <- list) println(v)ここで、Noneが来たときの処理が書かれていないことに、アレ?と思われる方が居るかもしれない。この事に対する答えは簡単で、上記のfor式はおおむね次のような、filterによってパターンにマッチする要素だけを抽出する式を間に挟むため、パターンにマッチしない要素は単純に処理されないのだ。 val list = List(Some(1), None, Some(3), None, Some(5))

    forでパターンマッチを使う - kmizuの日記
    Nagise
    Nagise 2008/09/25
    あとでサンプルを動かす
  • Scala 2.7.2はJavaの可変長引数に対応している - kmizuの日記

    scala-user MLの最近のポスト見て初めて知ったんだけど、Scala 2.7.2ではJava言語で書かれたメソッドで可変長引数を取るものに対して、ちゃんと可変長引数を取るメソッドとして呼び出せるようになっているみたい。 たとえば、 System.out.printf("%s world", "Hello")みたいなのが2.7.2 RC1ではコンパイル通るようになっている(2.7.2より前では、明示的に配列を生成してやる必要があった)。 しかし、Scala 2.7.2 RC1 is out!のページには、この事は載ってないな。サイトデザインが変わる前は、わかりやすいところにchangelogっぽいものがあった気がするんだけど、今はどこにあるんだろ。 追記: http://www.scala-lang.org/node/43 にchangelogがあった。しかし、やはり可変長引数に関す

    Scala 2.7.2はJavaの可変長引数に対応している - kmizuの日記
    Nagise
    Nagise 2008/09/19
    Javaの可変長引数が呼べるらしい
  • 連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)
  • kmizuの日記

    皆様、お久しぶりです。去る2月10日(土)、2月11日(日)に筑波大学情報科学類にて特別講義の講師をやってきました。といっても、私が全日担当したわけではなくOB一人が一コマを自分の得意分野について講義をするオムニバス形式のものです。 私はといえば去年やったのと同様、JavaScriptで抽象構文木を「手で」組み立てて解釈・実行するプログラミング言語Minisとその処理系を作るという講義を行いました。講義当日はスライドにミスがあることに途中で気づいたり色々あってテンパりましたがそれはそれとして。 元々、私が担当した「プログラミング言語作成概論」の趣旨は プログラミング言語を作るというのはとても簡単な作業なのに、プログラマにすらあまり知られていないのはけしからん。 とはいえ、実際に作ってみせないと実感が湧かないのが人情。 抽象構文木をJavaScript上で組み立てて、それをevalする関数を

    kmizuの日記
    Nagise
    Nagise 2008/05/12