► 2024 (6) ► 6月 (1) ► 5月 (1) ► 4月 (1) ► 3月 (1) ► 2月 (1) ► 1月 (1) ► 2023 (12) ► 12月 (1) ► 11月 (1) ► 10月 (1) ► 9月 (1) ► 8月 (1) ► 7月 (1) ► 6月 (1) ► 5月 (1) ► 4月 (1) ► 3月 (1) ► 2月 (1) ► 1月 (1) ► 2022 (12) ► 12月 (1) ► 11月 (1) ► 10月 (1) ► 9月 (1) ► 8月 (1) ► 7月 (1) ► 6月 (1) ► 5月 (1) ► 4月 (1) ► 3月 (1) ► 2月 (1) ► 1月 (1) ► 2021 (12) ► 12月 (1) ► 11月 (1) ► 10月 (1) ► 9月 (1) ► 8月 (1) ► 7月 (1) ► 6月 (1) ► 5月 (1) ►
先日、Scala 2.9.0 RC4がリリースされ、正式リリース(final)までもうあと少しといった感じになって来ましたが、皆様、いかがお過ごしでしょうか。訓練されたScala使いはRCには手を出さないとも言われますが、私は新し物好きなので、RCにも手を出してしまいます。 それはともかくとして、Scala 2.9.0の最大の目玉は何でしょうか?世間的(どこの世間だというツッコミはおいといて)には並列コレクションではないでしょうか。Scalaの公式サイトでも新機能の紹介で真っ先に挙げられていますし、少なくとも一番注目されているのは並列コレクションでしょう。 並列コレクションは、公式サイトも含め、英語圏のブログなどあちこちで既に紹介されているので、このエントリではあえて、その陰に隠れてあまり注目されないが、なかなか便利なscala.sys.processパッケージについて紹介します。 sca
Scalaで入力を取るとき,普通はscala.io.Sourceあたり,もしくはJavaのライブラリ(java.io.*)を使えるのですが,ファイル出力をしたいとき,いちいちJavaのライブラリを使うのが面倒だなぁ…という場合が多いと思います.そこで面倒なときにはファイルにリダイレクトするような感じで出力するようにしました. ファイルに出力する import scala.sys.process._ import java.io.File // 出力先のファイル val f = new File("output.txt") val list = List("String1", "String2", "String3") for (element <- list){ "echo %s".format(element) #>> f! }
これが……型の力かッ……!! spray | Blog » The Magnet Patternという記事で、「The Magnet Pattern」というデザインパターンが紹介されている。 これは、メソッドオーバーロードで解決していた問題を、型クラスとDependent method typesを組み合わせて置き換えることで、オーバーロードの際の様々な制約(Type Erasureなど)を突破し、より柔軟な拡張性を得ることができるというもの。このパターンでは、引数の型に応じて異なる結果型を返すようにできる。 この記事で、今まで何のために使われるのかわからんかったDependent method typesの有効性が理解でき、あらためて型の力を思い知った。 以前に"Generalized type constraints"(Scalaで<:<とか=:=を使ったgeneraliz
EXPERIMENTAL Eugene Burmako 著 Eugene Yokota 訳 def マクロは Scala のバージョン 2.10.0 より追加された実験的機能だ。 def マクロ機能の一部が、徹底した仕様が書かれることを条件に将来の Scala のいつかに安定化することが仮予定されている。 追記 このガイドは Scala 2.10.0 向けに書かれたもので、現在は Scala 2.11.x 系リリースサイクルのまっただ中なので当然本稿の内容が古くなっている。 しかしながら、このガイドが廃れたかと言うとそうとも言えなくて、ここで書かれていることの全ては Scala 2.10.x と Scala 2.11.x の両方で動作するため目を通す価値はあるはずだ。 これを読んだ後で、準クォートと マクロバンドルのガイドからマクロ定義を簡略化する最新情報を仕入れてほしい。 さらに詳しい具
概要長らくRCだったScala 2.10がとうとうリリースされました。Scala 2.10.0 now available!なお日本語の翻訳が存在しますので、詳細はこちらをどうぞ。ガイドと概要 - Scala Documentation新機能Value Classesclassは、struct型(制限事項が適用されます)のように動作させるためにAnyValを継承することができる。http://docs.scala-lang.org/overviews/core/value-classes.html値クラスを定義できるようになりました。これは実行時は元の型(例えばPrimitive型)として使われ、struct型のような構造を構築できるようです。汎用trait(Anyの拡張)による拡張やdefのみのメンバ、初期化を一切行わないなどの制限があります。この値クラスの意義はリソース面で不利なラッパ
この記事は、Play or Scala Advent Calendar 2012の25日めです。 Looking back 2012 2012年は、 Playのドキュメント翻訳 Scala、Playのビギナー向けの発表 会社の業務でもScalaが使えるようになった など、個人的にはPlayとScalaが身近な世界で躍進した年でした。そんな年にアドベントカレンダーの最終日を担当するというのは、何か感慨深いものがあります! 最近はPlayやScalaが実践で使われ始めた影響か、バイナリ互換性やビルドツール、習得面などの実践的な課題が色々と話題になっています。課題に対しては来年移行も粛々と対応をしていき、Scalaの今後の発展に寄与していきたいと思います さて、本題に入ります。先日、AkkaでMMOのサーバ(ほんの小さなものですが)を書きました。その時に使ったScala関連の技術をいくつかご紹介
先日、12月20日に、(現時点では非公式ですが)Scala 2.10.0がでました。*1 ところで、2.10から以下のような警告がでます。 scala> try{ | 1 | } catch { | case e => e.printStackTrace | } <console>:11: warning: This catches all Throwables. If this is really intended, use `case e : Throwable` to clear this warning. case e => e.printStackTrace ^で、2.8から2.9でerrorの呼び出しが警告になって、sys.errorになったときなども、単純作業で置き換えなくてはならず、ちょっと評判悪かったのですが・・・なにも知らずに単にThrowableの型を書くのはまずいと
少し前に献本いただいたのですが(竹添さん、翔泳社様、ありがとうございます)、時間が無くてあまり読み進められていませんでした。昨日使って一通り目を通したので、ちょっとした感想を書きます。購入の際の参考になれば幸いです。 まず、結論から言うと、本書は、 (特に)Javaをメイン言語として使っている人で、Scalaを学習したい人 Scalaを使った実用プロジェクトを作り始めたい人 Scalaの各種ライブラリの基本的な使い方を知りたい人 にお勧めできる書籍といえます。主な理由としては、 現行安定版である Scala 2.9.X (現在最新安定版はScala 2.9.2) に対応している事 言語機能に関するレシピがある事 sbtを使って、実際に開発を行うために必要な記述がちゃんとあること 準標準的なライブラリ(Akka, Specs 2, 等)や新しいFW(Play 2)に関する記述が豊富な事 など
ひしだまHPの更新履歴。 主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。 Javaのオブジェクト指向っぽい説明の例を、Scalaに書き換えてScalaを説明してみる。 Scalaはオブジェクト指向と関数型が融合された言語なので、ベースとしてJavaと似たオブジェクト指向(クラス)が使える。 Javaのインターフェースは、Scalaではトレイトで書く。 trait 政党 { def 政策を作成する() : 政策 } defでメソッドを定義する。(Scalaは関数型言語でもあるが、クラスやトレイト内に定義するのは関数ではなくメソッド。場面に応じて、メソッドは関数に(自動的に)変換して使われる) Javaとは違い(Pascalと似て)、メソッドの戻り値の型(や変数の型)はコロンで区切って後ろに書く。 抽象メソッドの宣言はabstractキーワードをつ
I've used both Haskell and Scala for some time now. They are both excellent and beautifully designed functional programming languages and I thought it would be interesting to put together a little comparison of the two, and what parts I like and dislike in each one. To be honest I've spent much more time developing in Scala than Haskell, so if any Haskellers feel unfairly treated please write a co
Scala で圏論入門 これは、Typesafe 社の Director Professional Services である Heiko Seeberger 氏による「Introduction to Category Theory in Scala」の翻訳文です。誤訳、誤記などがありましたら、 日本Scalaユーザーズグループの「圏論入門 レビューのお願い」トピックに投稿していただくか、@quassia88 にご連絡ください。 もし君が僕みたいに、以前はJavaディベロッパーで、Scalaのファンになったばかりなら、君は多分遅かれ早かれ、モナドやら関手やらの、圏論の分野からやってきた謎に遭遇するだろう。そういった未知の概念は、君を、自分が恐ろしくまぬけなんじゃないか、という気分にさせることだと思う。もし君がそういう概念に既に親しんでいるなら、時間を無駄にすることはない、すぐにこのページを閉
こんにちわ。今日は、関数適用の話をします。 前回のエントリで、「メソッドチェーンと違いがよくわからない」という指摘をもらったり、なんかスゴイSmalltakerから黒魔術を駆使したトラックバックをもらったりしたので、もう少し前回のエントリの意図するところを掘り下げたい、と思います。 ちなみに、このシリーズは、自分が学習して考えた結果をまとめたもので、タイトルにある「オブジェクト指向プログラマ」というのは俺自信のことです(キリッ ごめんなさい。 前回まで 前回は、このような入れ子になった関数呼び出しを、 // かっこがいっぱい……。 putStr(unlines(sort(lines(in)))) 関数合成を駆使して、このように変換するところまで説明しました。 putStr << unlines << sort << lines <*> in オブジェクトが無い世界 本題に入る前に、「オブジ
You have a good point of view on this issue here: The Purpose of Scala's Type System A Conversation with Martin Odersky, Part III by Bill Venners and Frank Sommers (May 18, 2009) Update (October2009): what follows below has actually been illustrated in this new article by Bill Venners: Abstract Type Members versus Generic Type Parameters in Scala (see summary at the end) (Here is the relevant extr
2011年も相変わらず「Scalaは実用的なのか?」という 「え、実用的も何も、普通に使ってますが、、、」としか答えられない質問を幾度も受けました。 Scalaは実用的で、例えばコミケのコスプレ画像の収集などができます。*1 【コミケ81】コスプレイヤー画像まとめ:1日目【C81】さとろぐ。 からjpg画像を一括ダウンロードし "data/(画像のURLの最後の/以下)"というファイル名で保存しようと思います。 ポイント dispatchでHTMLを取得する LiftのHTMLパーサでHTMLをxmlに変換する ScalaのXMLサポートでxmlを解析して画像のURLを抜き出す ExtractorでURLの分解 scala-ioを使ってファイルに保存 dispatchでHTMLを取得する 別にdispatchでなくてもscala標準のscala.io.sourceでもできるし、scalaj
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く