( ꒪⌓꒪) ゆるよろ日記

( ゚∀゚)o彡°オパーイ!オパーイ! ( ;゚皿゚)ノシΣ フィンギィィーーッ!!!

scala

Typolevel Scala Compiler

最近Scala Complierをforkするのが流行っているようですね。 paulp/policy · GitHub typelevel.scala | Typelevel Scala and the future of the Scala ecosystem 「俺のコンパイラか?欲しけりゃくれてやる、探せ!この世の全てをそこにおいてきた!」 男達…

Scala2.10.0のDependent method typesと型クラスを組み合わせた『The Magnet Pattern』がヤバい件

これが……型の力かッ……!!spray | Blog » The Magnet Patternという記事で、「The Magnet Pattern」というデザインパターンが紹介されている。 これは、メソッドオーバーロードで解決していた問題を、型クラスとDependent method typesを組み合わせて置き換え…

Freeモナド in Scala

噂のFreeモナドをScalaで写経してみた。 Freeモナドは、取り込む型SのFunctorと組み合わせて、Functorの特性に応じたモナドを得ることができるものらしい。 そろそろFreeモナドに関して一言いっとくか - fumievalの日記 Freeモナドって何なのさっ!? - capr…

Scalaにおける型パラメータの部分適用 [({type F[X] = G[A,X]})#F] について

Tumblrから出戻ってきました。8/4のLL DecadeのLT大会に出るのでぜひお越しください。さて、モナってますか? scalazなどでよく出現する[({type F[X] = G[A,X]})#F]のようなコードですが、これが何を意味しているのか最近やっと理解できたので、久しぶりにSca…

関数適用のススメ 〜 オブジェクト指向プログラマへ捧げる関数型言語への導入その2

こんにちわ。今日は、関数適用の話をします。 前回のエントリで、「メソッドチェーンと違いがよくわからない」という指摘をもらったり、なんかスゴイSmalltakerから黒魔術を駆使したトラックバックをもらったりしたので、もう少し前回のエントリの意図すると…

関数合成のススメ 〜 オブジェクト指向プログラマへ捧げる関数型言語への導入その1

こんにちわ。今日は、関数合成の話をします。 標準入力から何行か読み込んで、ソートして返す以下のようなScalaのコードを例にします。 例なので、あえて冗長なコードを書いてます。 このコードでは、4つの関数が用意されています(unlines/putstr/sort/lines…

Scalazを簡単に試してみるための"scalaz-playground"というプロジェクトを作った

yuroyoro/scalaz-playground · GitHubタイトルの通りで、このリポジトリをcloneして、"sbt console"と入力汁。 ozaki@mbp-4 $ git clone https://github.com/yuroyoro/scalaz-playground.git [~/sandbox/.../yuroyoro/work] Cloning into 'scalaz-playground…

Scalaプログラマレベル(アプリケーション/ライブラリ)[翻訳]

Scalaの難易度とか学習曲線について、最近また議論されてるようですが、公式にはこのようなレベル分けになってますよ。Scala levels: beginner to expert, application programmer to library designer | The Scala Programming Language アプリケーションプ…

ほとんど使われていないマニアックな機能「事前定義 (Early Definitions)」- Scala Advent Calendar jp 2011 Day 5

このエントリは Scala Advent Calendar jp 2011 の5日目です。Scalaやってる人なら一度はScala言語仕様に目を通したことがあると思います無いとは言わせない。この言語仕様を見ると、たまに思いもよらない発見があったりしますが、その中でほとんど利用され…

寝てる場合じゃねぇ!(Scala)

寝てる場合じゃねぇ! - プログラマーの脳みそScalaだとコンパイラ騙さなくても言語がサポートする機能でふつーにできるし。 object NoSleep extends App { trait Sleepy[A] { def sleep(n:Long):Unit } implicit val hoge = new Sleepy[Nothing]{ def sleep…

第一回 Scala会議で発表したUnfiltered/Finageの資料

第一回 Scala会議 - [PARTAKE] で発表した内容です。20110828_ScalaConf01_introducing_Unfiltered_and_Finagle

BPStudy#49 秋のScala祭りでFinagleについて発表した資料

BPStudy#49 : ATND で発表した資料です。20110930_BPStudy49

ドワンゴ社内 scala勉強会 で「クリエイティブで高品質なScalaプログラマになるための10のTips」 という発表をした

ドワンゴ社内 scala勉強会 - ニコニコ生放送での発表資料。20111120_Dwango_scala

Scala2.10に文字列中の\{ _ } で式展開する機能が入るかも?

以下の記事で紹介されているが、Scala2.10の実験的な機能として、 このコミットにより、 文字列中の式展開が入るかもしれない。 Algorithmically challenged: String Interpolation on 2.10? 式展開とは、Rubyでは"foo #{hogehoge}"のように文字列中に式を埋…

ScalaでFibBuzz

解いてみた。他の言語と違って、fib(92)以上はLongに収まらないのでBigIntを用いなければならないところがまずツラい。あとprintln長すぎる。 最初はStreamを使ってfibを定義した。 // 163bytes val x:BigInt=1 val f:Stream[BigInt]=x#::f.scanLeft(x){(a,b…

ᗅᐷᒷᐷᕕᐷᔹᐓᕀᐓᕶᐓᕌᐓ (謎言語ウキャス)

ᙐᐨᘍᐨ、ᓽᐓᔦᐓᓻᐓᓽᐓᓢᐓUnihanGridᔥᐓᗩᐯᔔᐓᓹᐓᘃᐹᔦᐓᓺᐓᓲᐓᔦᐓᓳᐓᓤᐓᓼᐓ、U+1400 ᓞᐓᔜᐓ U+16FF ᔑᐓᓺᐓᔁᐓᖯᐨᕻᐤᓟᐓᓕᐓᔑᐓᔝᐓᓾᐓᕂᐓᖏᐓᕾᐓᓺᐓᓗᐓᔠᐓᓗᐓᔠᐓᓻᐓᙀᐴᓛᐓᐦᐫᓾᐓᓰᐓᓙᐓᓾᐓᓽᐓᓶᐓᓲᐓᔁᐓᓺᐓᓬᐓ。 Unihan Index for U+1400 through U+14FF Unihan Index for U+1500 through U+15FF Unihan Index for U+1600…

「俺が本当のScalaの怖さを教えてやる」 −− "型レベルプログラミング in Scala"翻訳中

型レベルプログラミング in Scala(Type-Level Programming in Scala) — Japanese translation of Apocalisp v1.0 documentation

「Scala実践プログラミング」が6/16日に発売されるので、モナドについて大変わかりやすく解説してある「モナドは象だ」を翻訳してみたのでみんなヨロシクって言いたい

日本語でおk Scala実践プログラミングposted with amazlet at 11.06.12秀和システム 売り上げランキング: 665Amazon.co.jp で詳細を見る 目次とかは内容については、 モテるScala女子力を上げたい人向けにScalaの本が出ます。 - ゆろよろ日記をみてください…

プログラミング言語「ほむほむ」

なんか、極めると「ほむほむ」だけで会話できるみたいですね? 俺はまだそこまでの域には至ってないんですが、「ほむほむ」だけでプログラミングできたらステキですよね?そこで、ちょっと草植えときますね型言語 Grassを元にして以前作ったプログラミング言語…

Scalaでmethod_missing的なことができる"applyDynamic"を使って"Term::ANSIColor"みたいなの作った

Scala2.9から、DynamicってのでRubyのmethod_missing的なことができるようになる.....ハズだったんだが、 2.9正式リリースの数時間前にいきなりこの機能はサポートされなくなった。 といっても全く使えなくなったわけではなく、scalacやscalaコマンドに-Xexp…

Scala2.9から導入されたバイナリ互換性確保のためのbridgeアノテーションについて調べた

InfoQのScala2.9リリースの記事を読んでいて、Scala2.8から2.9へのバイナリ互換性確保のための方法について、こんな記述があった One such technological solution are compiler generated forwarders, so-called bridge methods, which delegate calls from…

Scala Interpreter Hacks!! ―REPLを組み込んだりevalしたり

最近REPLをHackするのが流行ってるみたいなんで俺もやってみた。scala.tools.nsc.interpreter.{IMain, ILoop}あたりのソースコードを読めば大体分かるよ。 REPLをコードに組み込む これは結構簡単で。scala.tools.nsc.interpreter.ILoopを作ってやればよい。…

implicit conversionを定義する際に最低限チェックすべきこと

軽くイラッ☆っとしたので書く。 Scalaにはimplicit conversionってのがあってまぁ知らないならググれ。で、implicit conversionを定義する際に、最低限チェックすべきたったひとつのことを書く。 「scala.Predefでimplicit conversionが定義されている型に対…

Java SE 7 - Project Coinの整数リテラル区切り文字をScalaにも

Java SE7も Developer Preview Releaseが出てもうみんな当然のように入れてると思います。 で、JavaSE7に入るProject Coinに、整数リテラル区切り文字ってのがあります。ようは、数値リテラル中で"_"による区切りを入れることを許すって仕様です。 int a = 1…

モテるScala女子力を上げたい人向けにScalaの本が出ます。

秀和システムさんからScalaの本が出ます。発売は多分6月くらいです。 "オープンソース徹底活用"シリーズとして、Scalaをより実践的に使うための色々な事を盛り込みました。タイトルはまだ未定です。 @kmizu, @ryugate ITプランニングさんから(@osiire @keigo…

Scalaの無限リスト(Stream)でいろいろと

宇宙に始まりはあるが、終わりはない。 ――無限

ScalaでRubyのObject#tapがぽぽぽぽ〜ん。っていうかいつでもmapしたい

「まほうのこーどで♪ たのしい♪ れいがいが♪ ぬるぽぽ〜ん♪ 」 作ってみた。 // 入れ物はタッパーです。 trait Tapper[A] { val obj:A // RubyのObject#tap的な。引数fに自分自身を適用させて自身を返す。 // 副作用専用メソッド。nullだったらなにもしなー…

書評:プログラミングScala - The Python Paradox is now the Scala Paradox

オライリージャパン様より献本頂きました。読了したので、感想など書いてみたいと思います。 プログラミングScalaposted with amazlet at 11.02.19Dean Wampler Alex Payne オライリージャパン 売り上げランキング: 69951Amazon.co.jp で詳細を見る The Pyth…

Wicket1.5で導入されるNew Event SystemをScalaでエロガントに実装する

もう2週間以上前にもなりますが、Wicket勉強会 2011-01 : ATNDに行ってきたんですよ。 そこでWicket1.5からNew Event Systemってのが導入されてこれはScalaと相性いいんじゃね?みたいな 話になって、そりゃ俺に対して振ってるんだな、と思って書いてみました…

(皿うどん)Structural Subtyping(構造的部分型)アレコレ

このまえ、夢の中でね、あるコレクションの中から特定のシグニチャを持つオブジェクトをより分けるようなコード書いてる夢見たんですよ。ええ、見たんです夢で。 で、ふと目が覚めて(深夜3時半)おもむろにREPLでいろいろやってみた結果を書こうと思います。…