タグ

ブックマーク / eed3si9n.com (13)

  • http://eed3si9n.com/ja/scala-2.12.0

  • Gigahorse 0.1.0 · eed3si9n

    2016-07-29 更新: Gigahorse 0.1.1 を使ってください。 Gigahorse 0.1.0 をリリースした。これは Scala のための HTTP クライアントで、内部にAsync Http Client を使っている。詳しくは Gigahorse ドキュメントを書いたので、それを参照してほしい。ライブラリがどういう感じなのかを例でみるとこんな感じだ。 scala> import gigahorse._ scala> import scala.concurrent._, duration._ scala> Gigahorse.withHttp(Gigahorse.config) { http => val r = Gigahorse.url("http://api.duckduckgo.com").get. addQueryString( "q" -> "1 + 1"

    moccos_info
    moccos_info 2016/08/04
    “LGPL を回避するために実装は見てない”GPL脳内汚染的な話だ
  • -Yno-lub を用いた Scala の厳格化 · eed3si9n

    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

    moccos_info
    moccos_info 2015/10/01
    “僕達は型推論が何をしでかすか一切分からないため、メソッドごとにチェックを入れている”関数型言語の全般的な話として、コンパイラは何段でも推論できるが人間には無理…
  • Scala脳のための C# LINQ | eed3si9n

    これは Scala プログラマのための C# LINQ 機能の覚え書きだが、逆としても使えるはず。 型推論 C# には型推論がある。個人的に、ローカル変数ではできるだけ var を使うようにしている。

    moccos_info
    moccos_info 2015/05/18
    C#すごいな
  • Scala Pickling 0.10.0 · eed3si9n

    2015-02-07 / scala pickling 0.10.0 として implicit.ly に投稿したものを訳しました。 最近コミッター権をもらいましたが、Pickling の 90% 以上は Eugene Burmako、Heather Miller、Philipp Haller によって書かれています。 Scala Pickling は、Scala のための自動シリアライゼーション・フレームワークで、0.10.0 が初の安定版となる。Pickling は高速で、ボイラープレート (冗長なお決まりコード) 無しで書くことができ、ユーザ側で (バイナリや JSON などの) シリアライゼーション・フォーマットを簡単に差し替えることができる。また、0.10.x シリーズ中はバイナリ互換性とフォーマットの互換性の両方を保つ予定だ。 Pickling を短くまとめると ある任意の値、例

    moccos_info
    moccos_info 2015/02/09
    serializeに対してpickleって語がつかわれるのか (本題と関係ない
  • オブジェクト指向プログラミングとは何か? · eed3si9n

    2013-09-18 oop はどう定義されるべきだろうか? 純粋オブジェクト指向プログラミング 純粋オブジェクト指向プログラミングは以下のように定義できる: オブジェクトを使ったプログラミング。 オブジェクトとは何か? 他のオブジェクトへの参照を保持し、事前にリストアップされたメッセージを受信することができ、他のオブジェクトや自分自身にメッセージを送信することができるアトムで、他には何もしない。メッセージは名前とオブジェクトへの参照のリストから構成される。 これでおしまい。言い回しは僕が考えたものだけど、アイディアはオブジェクト指向という言葉を作った張人 Alan Kay (2003) からのものだ。これ以外は、直接 oop に関係無いか、実装上の詳細だ。 この定義から導き出せるものを考えてみよう。 まずは名前空間だ。C の関数と違ってメッセージ (別名メソッド) はオブジェクトごとに

    moccos_info
    moccos_info 2013/10/07
    program to an interface は oopじゃなく構造化。なるほど。
  • sbt 0.13.0 の変更点 · eed3si9n

    2013-07-24 / sbt 概要 互換性に影響のある新機能、変更点、バグ修正 sbt とビルド定義を Scala 2.10 に移行した。 project/plugins/ 内に置かれたプラグインの設定ファイルのサポートを廃止した。これは 0.11.2 より廃止予定になっていた。 set コマンドにおいてセッティングの右辺項内のタブ補完を廃止した。新たに追加されたタスクマクロがこのタブ補完を不要にするからだ。 キーの慣用的な書き方はこれよりキャメルケース camelCase のみとする。詳細は後ほど。 Maven との互換性を正すため、テストのデフォルトの classifier を tests に修正した。 グローバルなセッティングとプラグインのディレクトリをバージョン付けるようにした。デフォルトでは、グローバルセッティングは ~/.sbt/0.13/ に、グローバルプラグインは ~/

    moccos_info
    moccos_info 2013/10/07
    オゥ、悪名高きJLineがどうにかなるのかな
  • シンプルさの必要性 · eed3si9n

    2013-06-24 2012年4月23日にテキサスの Austin で行われた RailsConf 2012 での Rich Hickey (@richhickey) さんによる基調講演、Simplicity Matters を書き起こして翻訳しました。 Rich Hickey さんは Clojure や Datomic の作者です。 この翻訳は Creative Commons Attribution ShareAlike 3.0 ライセンスに基いて公開します。 Rich Hickey 講演 e.e d3si9n 訳 談: こんにちは。ご招待いただきありがとうございます。 聞く所によると RailsConf はいつもコミュニティーからかなり外れた人を選ぶらしく、今回は僕ということになりました。 僕の電話ボックスは外に駐車してあります。(会場、笑) だけど、今日は言語の壁を越える話題を持

  • 独習 Scalaz — 独習 Scalaz

    独習 Scalaz これまでいくつのプログラミング言語が羊の衣を着た Lisp に喩えられただろうか? Java は馴染み親しんだ C++ のような文法に GC を持ち込んだ。それまで他にも GC を載せた言語はあったけども、現実的に C++ の代替となりうる言語に GC が載ったことは 1996年には画期的に思われた。やがて時は経ち、人々は自分でメモリ管理をしないことに慣れていった。JavaScriptRuby の両言語もその第一級関数 (first-class function) やブロック構文を持つことから羊の衣を着た Lisp と呼ばれたことがある。S式の同図像性がマクロに適することから Lisp系の言語はまだ面白いと思う。 近年の言語はもう少し新しい関数型言語から概念を借りるようになってきた。型推論やパターンマッチングは ML にさかのぼることができると思う。時が経てば、人

  • sbt 0.12.0 の変更点 | eed3si9n

    2012-06-08 / sbt ついに final がリリースされた、sbt 0.12.0 の変更点を訳しました。 バイナリバージョンという概念が導入されることで、Scala 2.9.0 で入ったけどあまり活用されていない Scala の後方バイナリ互換性がより正面に出てくるキッカケとなると思います。 互換性に影響のある新機能、バグ修正、その他の変更点 Scala 2.10 以降の Scala 及び sbt プラグインのクロスバージョン規約の変更。 (詳細は以下の項目 ) 直接実行された場合、強制的に update を実行するようにした。 #335 sbt プラグインリポジトリがプラグインとプラグインの定義にデフォルトで加わった。 #380 プラグイン設定ディレクトリの優先順位。 (詳細は以下の項目 ) ソース依存性の修正。 (詳細は以下の項目 ) 集約がより柔軟になった。 (詳細は以下

  • Scalaz cheat sheet | eed3si9n

    def show(f: A): Cord 1.0.show assert_=== Cord("1.0") 1.0.shows assert_=== "1.0" 1.0.print assert_=== () 1.0.println assert_=== () def pred(a: A): A def succ(a: A): A 1.0 |-> 2.0 assert_=== List(1.0, 2.0) 1.0 |--> (2, 5) assert_=== List(1.0, 3.0, 5.0) // |=>/|==>/from/fromStep return EphemeralStream[A] (1.0 |=> 2.0).toList assert_=== List(1.0, 2.0) (1.0 |==> (2, 5)).toList assert_=== List(1.0, 3.0,

  • Scala 2.10 におけるメタプログラミング: 構文木、シンボル、型について · eed3si9n

    2012-08-06 Scala マクロの作者 Eugene Burmako さんによるリフレクション API に関する発表のスライド、“Metaprogramming in Scala 2.10” を翻訳しました。翻訳の公開は人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2012年4月28日 Eugene Burmako 著 2012年8月5日 e.e d3si9n 訳 はじめに メタプログラミング メタプログラミングとは、他のプログラムや自身をデータとして書いたり操作するコンピュータプログラムを書くこと。 —Wikipedia コンパイラ 問: どうやってメタプログラミングを可能にすることができだろう? 答: コンパイラよりもプログラムに関してデータを持つ者がいるだろうか? プログラマにコンパイラを公開しよう。 リフレクション 2.10 ではプログラムに関するデ

  • 実戦での Scala: Cake パターンを用いた Dependency Injection (DI) · eed3si9n

    2011-04-23 Akka の作者として益々注目を集めている Jonas Bonér が 2008年に書いた “Real-World Scala: Dependency Injection (DI)” を翻訳しました。翻訳の公開は人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2008年10月6日 Jonas Bonér 著 2011年4月22日 eed3si9n 訳 さて、実戦での Scala シリーズ第二弾の今回は、Scala を用いた Depenency Injection (DI) の実装をみていきたい。Scala は、備わっている言語機構だけを用いても何通りかの DI を実現できる非常に豊かでディープな言語だが、必要に応じて既存の Java DI フレームワークを使うこともできる。 Triental では、一つの戦略に落ち着くまで三つの異なる方法を試した

  • 1