前回に引き続き、 Scala2.10の新機能を勉強していきます。今回のテーマは「ValueClass」です。
前回のつづきで、 今日はScala2.10のImplicitClassをやってみたいと思います。 環境 MacOSX 10.8.3 Scala 2.10.1 sbt 0.12.2 ImplicitClassって? 簡単に言うと、ImplicitConversionを楽に書ける機能、 と理解して良いんでしょうかね? SIP-13 - Implicit cl…
久々のブログですが、 今更ながらScala2.10の新機能をちゃんと勉強しておこうと思います。※終わったらRuby2.0やろうと思ってますが、、、 今回のテーマ StringInterpolation です。 環境 MacOSX 10.8.3 Scala 2.10.1 sbt 0.12.2 StringInterpolationって? R…
Scala勉強日誌 - Actor - 成らぬは人の為さぬなりけり 大分前にActorの勉強して、続きでAkkaの勉強しようと思ってて、完全に忘れていたので、 再開したいと思います。 (仕事で必要になって、勉強したので、メモしているだけ、、、)今日のテーマは、、、 SB…
前回は、 関数定義、文字列内変数展開をやってみました。 さて、今回のテーマは、、、 可変長引数 レンジ 比較演算子 条件付き代入 無名関数 をやってみたいと思います。 可変長引数 関数の引数に「...」をつけると可変長引数になります。 hoge = (ary...) -…
前回、CoffeeScriptの環境を作ったので、 早速書き始めてみようと思います。 今回のテーマ 関数定義 文字列内変数展開 関数定義 CoffeeScriptでの関数定義はこんな感じになるようです。 helloworld.coffee helloworld = -> console.log "hello world" 呼び出…
CoffeeScriptを勉強する為に環境を構築したので、メモ。 環境 OS : MacOSX 10.8.2 Node.js : 0.8.16 npm : 1.1.71 CoffeeScript : 1.4.0 Homebrew : 0.9.3 インストール手順 HomebrewでNode.jsをインストール npmをインストール CoffeeScriptをインストール …
sbtの独自タスク追加方法は、ググればちらほら出てくるのですが、 Playを使ったsbtの独自タスクの定義方法がよくわからず、 ちょっと苦労したので、メモします。 (苦労した、という程の事でもないのですが。。。) 今回の環境 OS : Mac OS X 10.7.5 Scala :…
前回、Scalaのプレースホルダについて書きました。↑の記事の後半に出てきた部分で大きな勘違いをしていたので、 訂正すると共に、学習し直したいと思います。 先日、@kmizuさんのブログで、プレースホルダについて書かれていたので、 参考にさせて頂きました…
今回のテーマは、、、 newtypeとdata 以上のテーマで、参ります。 newtypeとdata 「1つの型を取り、何かにくるんで別の型にみせかける」 というような事がしたい場合、 dataではなく、newtypeキーワードを使う事ができます。 例えば、このような場合 Prelude…
プレースホルダーは、関数の引数を省略して書けるものだと思っていました。結論からいうと、 プレースホルダはあくまで関数の部分適用をする物、 のようです。 ※自分の中ではそう理解した。。。具体的な例を挙げて、考えた事を説明していきます。 val list =…
今回はついにFunctorです。 正直、まだFunctorの利点がよくわかっていないですが、 とりあえず、書いてみようと思います。 今回のテーマは、、、 Functorとは? fmap ファンクター則 ApplicativeFunctor こんな感じでお送りしようと思います。 Functorとは?…
久々のHaskellです。 前回からの続きは「すごいH本」的にはIOの章なんですが、 この辺よりも、その次の章が面白かったので、 ブログに書くのはやめました。 と、いうわけで、今回のテーマは、、、 関数型問題解決法 逆ポーランド記法電卓 関数型問題解決法 …
最近ずっとHaskellの話題だったんですが、今日はScalaです。最近少しずつ仕事でもScalaを使うようになってきて、 勉強しなおしてます。早速表題の件ですが、 class Hoge(val name:String) class Foo(implicit hoge:Hoge) implicit val hoge = new Hoge("hoge…
先週サボったので、二週間ぶりです。今日のテーマは、、、 データ型 レコード構文 型引数 型クラス 今までずっとオブジェクト指向でやってきた自分にとっては、 ここはなかなか理解しづらく、 未だに0から自分で書ける気がしない、、、 データ型 データ型と…
今回のテーマは、、、 カリー化 高階関数 RubyやScalaをやった事があるので、 カリー化、高階関数は、割りとすんなり入って来ました。 カリー化 Haskellでは、関数はデフォルトでカリー化されています。 Haskellの全ての関数は、公式には引数を一つ取ること…
(週1で更新するのがお決まりパターンになってきました。)今日のテーマは、、、 再帰 今日は一個のテーマで書いてみます。 Haskellでは繰り返し処理は再帰で書くようです。 再帰はたしかに読みやすいし、 コードが簡潔になるので、好きですが、 実行効率の…
前回から、しばらく経ちましたが、 なかなか読み進まなかったので、書いてませんでした。というのも、正直2章の内容を理解しきれなくて、、、 理解できないというか、イメージができないというか、 型クラスのインスタンスが型と言われても、 正直よくわか…
githubのnotifyやjenkinsのrssを常に気にしていたいのですが MacのFireFoxのJenkinsRSSリーダーがどうも上手く通知してくれないし、 常にブラウザ開いているわけでもないので、 今仕事で常に開いているSkypeに通知するbotを作ってみようかと思いました。 Rub…
前回からの続きです。今日のテーマは… リスト内包表記 タプル 以上!短いw まずは、 リスト内包表記 リストのフィルタリング・変換、組み合わせを行う方法、だそうです。 リスト内包表記ってなんぞや、と最初は思いましたが、 やってみると非常にわかりやす…
勉強会に参加する事や、TL上でよく見る本だったので、買ってみました。 すごいHaskellたのしく学ぼう!作者: Miran Lipovača,田中英行,村主崇行出版社/メーカー: オーム社発売日: 2012/05/23メディア: 単行本(ソフトカバー)購入: 20人 クリック: 556回この…
iPhoneの絵文字は iOS2.2から絵文字を扱えるようになりましたが、 当初はSoftbankのUnicodeマッピングになっていました。しかし、現在のiOS5.1ではUnicode6.0の絵文字が使用されているようです。Railsで、Opensocialのアプリを作っているのですが、 jpmobile…
今日のテーマは「Actor」です。 チャット作ってみようと思って、Play2.0のサンプルにある WebsocketChatのコードを見ていたらActorが出てきて、 全く理解できずw そういえば、さらっと勉強して、すっかり忘れていたので ちゃんと勉強してみる事にしました。…
最近Scala勉強してます。仕事ではここ半年以上ずっと、Railsなので、 ScalaではPlayを使ってみようと思い、始めました。ただ、ことDBアクセスに関してはPlay標準のAnormは、なんかしっくりこない、、、 ActiveRecord的な感覚で使えるORMは無いものか、と。色…
好みの問題なのかもしれません。 (と、思っているのは、自分の知識が浅いからかな?) 以下のようなコードがあったとします。 def hoge foo = Something.foo if foo foo.do_something end end こういう場合、私はこう書きたい。 def hoge if foo = Somethin…
最近、 TIOBE Software: The Coding Standards Company こんな事をやっている所があることを知り、 C#が上がってきている事を知って、 驚きと共に、嬉しい気持ちになった矢先。別の角度で、面白い事をやっていらっしゃる方がいらっしゃいましたので、 ご紹介…
うん、タイトルだけだと、意味わからん、という感じかと、、、 わかるかな? なんて書いたらいいのか、悩んだので、 とりあえず、書いてみました。 コードで示した方が分かりやすいかと。 ※やりたいと思った事(以下のコードは間違ってます) case hoge when…
EmacsでRubyの開発を行う場合、 おそらくみなさんFlymakeを使っているのではないかと 勝手に思い込んでおりまして、 私はFlymakeを使っている次第でございます。 「emacs flymake ruby」とかググると、 まぁ、いろいろ出てくるわけですが、 例えば、 EmacsWi…
Gitのデフォルトの設定で、diffを見ると パッチの形式で表示される為、 ぶっちゃけ人間が見ると見づらいんですよ、、、 (慣れろ、俺。とは思うけども。 % git diff diff --git a/src/collection/set_and_map/MapSamples.scala b/src/collection/set_and_map…
Ruby1.9を使用している人は知らないうちに(?)活用してると思いますが。 Ruby1.9から、Symbol#to_procを使用するのにライブラリは不要になりました。 初めて見た時は、なんじゃこりゃーー、と思ったけど、 意味が分かれば、どうってことは無い。 例えば、…