You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
lub Scala の型推論が型 A と型 B を統合するとき、それらの <:< に関する lub (least upper bounds, 最小上界) を計算する。この過程を lubbing と呼ぶこともある。具体例で説明する: scala> if (true) Some(1) else None res0: Option[Int] = Some(1) scala> if (true) List(1) else Nil res1: List[Int] = List(1) ここ数年考えているのは、少なくとも今ある形での lubbing は有益ではないのではないか、ということだ。2013年にもこんなことを言っている: are non-imported implicits and lubing useful in #scala? Map to List[Tuple2], Int to Doub
2016-02-13 / scala 僕にとって ScalaMatsuri とはライフスタイルのようなものだ (他の 27名近くいるオーガナイザーも同じように思っているんじゃないだろうか)。確かに、近日東京で 550名を動員したカンファレンスがあって、それは成功に終わった。しかし、オーガナイザーは 2015年の 2/28 からかれこれ 11ヶ月間準備してきた。僕が関わったのは一部でしかないけども、ScalaMatsuri 2016 はこれまでで一番関わりの深いカンファレンスになったと思う。この何ヶ月の間 Slack、Hangout たまには対面で、さまざまな議論を重ねてきた。面白かったのは、一緒にアイディアを出し合ってそれが実現されるのをみることだったと思う。僕が奇抜なアイディアを出して、その詳細を誰かが実行してくれることもあれば、他の人が始めたことを元に僕が現場の作業をすることもあった。
Java SE > Java SE Specifications > Java Virtual Machine Specification The Java® Virtual Machine Specification Next The Java® Virtual Machine Specification Java SE 8 Edition Tim Lindholm Frank Yellin Gilad Bracha Alex Buckley 2015-02-13 Legal Notice Table of Contents Preface to the Java SE 8 Edition 1. Introduction 1.1. A Bit of History 1.2. The Java Virtual Machine 1.3. Organization of the Specifi
このエントリは、これまで自分がさんざんTwitterで書いてきたことですし、Martin Odersky教授へのインタビュー www.artima.com でおおむね語られていることでもあります。ただ、この辺の事情についてあまり詳しくない方も居るようなので、上記インタビューの引用を交えて、JavaにGenericsが入るに至った経緯や関連して活躍した人物についても書いてみようと思います。 事の始まりは1995年にJavaが発表されたことでした。これに触発された、Philip Wadler先生(世界的に有名なコンピュータ科学者)、Martin Odersky先生と同じ研究室に居た助手さん?がこれでなんかやってみないかと煽ったらしく、翌年の1996年には、JavaにGenericsや高階関数、ADTなど関数型プログラミング言語の機能を入れ込んだPizza言語をMartin Odersky先生が
皆さんご存知の通り、Scalaにはパターンマッチという機能があります。この機能、しばしば型に対するswitch-caseとして使われていることがあるようです。 たとえば、 sealed trait class Value case class Hoge(value: Int) extends Value case class Foo(value: String) extends Value case class Bar(value: List[String]) extends Value というコードがあったとき、しばしば value match { case hoge:Hoge => doHoge(hoge.value) case foo:Foo => doFoo(foo.value) case bar:Bar => doBar(bar.value) } のような形で使われることがありま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く