成らぬは人の為さぬなりけり

エンジニアライフをエンジョイする為のブログ

Scala2.10の新機能を勉強する その3 ValueClass

前回に引き続き、 Scala2.10の新機能を勉強していきます。今回のテーマは「ValueClass」です。

Scala2.10の新機能を勉強する その2 ImplicitClass

前回のつづきで、 今日はScala2.10のImplicitClassをやってみたいと思います。 環境 MacOSX 10.8.3 Scala 2.10.1 sbt 0.12.2 ImplicitClassって? 簡単に言うと、ImplicitConversionを楽に書ける機能、 と理解して良いんでしょうかね? SIP-13 - Implicit cl…

Scala2.10の新機能を勉強する その1 StringInterpolation

久々のブログですが、 今更ながらScala2.10の新機能をちゃんと勉強しておこうと思います。※終わったらRuby2.0やろうと思ってますが、、、 今回のテーマ StringInterpolation です。 環境 MacOSX 10.8.3 Scala 2.10.1 sbt 0.12.2 StringInterpolationって? R…

Scala勉強日誌 - Akka その1

Scala勉強日誌 - Actor - 成らぬは人の為さぬなりけり 大分前にActorの勉強して、続きでAkkaの勉強しようと思ってて、完全に忘れていたので、 再開したいと思います。 (仕事で必要になって、勉強したので、メモしているだけ、、、)今日のテーマは、、、 SB…

CoffeeScriptを書いてみる その2

前回は、 関数定義、文字列内変数展開をやってみました。 さて、今回のテーマは、、、 可変長引数 レンジ 比較演算子 条件付き代入 無名関数 をやってみたいと思います。 可変長引数 関数の引数に「...」をつけると可変長引数になります。 hoge = (ary...) -…

CoffeeScriptを書いてみる その1

前回、CoffeeScriptの環境を作ったので、 早速書き始めてみようと思います。 今回のテーマ 関数定義 文字列内変数展開 関数定義 CoffeeScriptでの関数定義はこんな感じになるようです。 helloworld.coffee helloworld = -> console.log "hello world" 呼び出…

HomebrewでNode.js入れて、npmでCoffeeScriptを入れる

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をインストール …

Play2.0でsbtの独自タスクを定義する

sbtの独自タスク追加方法は、ググればちらほら出てくるのですが、 Playを使ったsbtの独自タスクの定義方法がよくわからず、 ちょっと苦労したので、メモします。 (苦労した、という程の事でもないのですが。。。) 今回の環境 OS : Mac OS X 10.7.5 Scala :…

プレースホルダは意外と難しい(その2)

前回、Scalaのプレースホルダについて書きました。↑の記事の後半に出てきた部分で大きな勘違いをしていたので、 訂正すると共に、学習し直したいと思います。 先日、@kmizuさんのブログで、プレースホルダについて書かれていたので、 参考にさせて頂きました…

すごいHaskellたのしく学んでみる-その9

今回のテーマは、、、 newtypeとdata 以上のテーマで、参ります。 newtypeとdata 「1つの型を取り、何かにくるんで別の型にみせかける」 というような事がしたい場合、 dataではなく、newtypeキーワードを使う事ができます。 例えば、このような場合 Prelude…

プレースホルダは意外と難しい

プレースホルダーは、関数の引数を省略して書けるものだと思っていました。結論からいうと、 プレースホルダはあくまで関数の部分適用をする物、 のようです。 ※自分の中ではそう理解した。。。具体的な例を挙げて、考えた事を説明していきます。 val list =…

すごいHaskellたのしく学んでみる-その8

今回はついにFunctorです。 正直、まだFunctorの利点がよくわかっていないですが、 とりあえず、書いてみようと思います。 今回のテーマは、、、 Functorとは? fmap ファンクター則 ApplicativeFunctor こんな感じでお送りしようと思います。 Functorとは?…

すごいHaskellたのしく学んでみる-その7

久々のHaskellです。 前回からの続きは「すごいH本」的にはIOの章なんですが、 この辺よりも、その次の章が面白かったので、 ブログに書くのはやめました。 と、いうわけで、今回のテーマは、、、 関数型問題解決法 逆ポーランド記法電卓 関数型問題解決法 …

メソッド引数とコンストラクタ引数のimplicitパラメータ

最近ずっとHaskellの話題だったんですが、今日はScalaです。最近少しずつ仕事でもScalaを使うようになってきて、 勉強しなおしてます。早速表題の件ですが、 class Hoge(val name:String) class Foo(implicit hoge:Hoge) implicit val hoge = new Hoge("hoge…

すごいHaskellたのしく学んでみる-その6

先週サボったので、二週間ぶりです。今日のテーマは、、、 データ型 レコード構文 型引数 型クラス 今までずっとオブジェクト指向でやってきた自分にとっては、 ここはなかなか理解しづらく、 未だに0から自分で書ける気がしない、、、 データ型 データ型と…

すごいHaskellたのしく学んでみる-その5

今回のテーマは、、、 カリー化 高階関数 RubyやScalaをやった事があるので、 カリー化、高階関数は、割りとすんなり入って来ました。 カリー化 Haskellでは、関数はデフォルトでカリー化されています。 Haskellの全ての関数は、公式には引数を一つ取ること…

すごいHaskellたのしく学んでみる-その4

(週1で更新するのがお決まりパターンになってきました。)今日のテーマは、、、 再帰 今日は一個のテーマで書いてみます。 Haskellでは繰り返し処理は再帰で書くようです。 再帰はたしかに読みやすいし、 コードが簡潔になるので、好きですが、 実行効率の…

すごいHaskellたのしく学んでみる-その3

前回から、しばらく経ちましたが、 なかなか読み進まなかったので、書いてませんでした。というのも、正直2章の内容を理解しきれなくて、、、 理解できないというか、イメージができないというか、 型クラスのインスタンスが型と言われても、 正直よくわか…

RubyでSkypeにメッセージを投稿(Mac専用)

githubのnotifyやjenkinsのrssを常に気にしていたいのですが MacのFireFoxのJenkinsRSSリーダーがどうも上手く通知してくれないし、 常にブラウザ開いているわけでもないので、 今仕事で常に開いているSkypeに通知するbotを作ってみようかと思いました。 Rub…

すごいHaskellたのしく学んでみる-その2

前回からの続きです。今日のテーマは… リスト内包表記 タプル 以上!短いw まずは、 リスト内包表記 リストのフィルタリング・変換、組み合わせを行う方法、だそうです。 リスト内包表記ってなんぞや、と最初は思いましたが、 やってみると非常にわかりやす…

すごいHaskellたのしく学んでみる-その1

勉強会に参加する事や、TL上でよく見る本だったので、買ってみました。 すごいHaskellたのしく学ぼう!作者: Miran Lipovača,田中英行,村主崇行出版社/メーカー: オーム社発売日: 2012/05/23メディア: 単行本(ソフトカバー)購入: 20人 クリック: 556回この…

jpmobileでiPhoneの絵文字対応

iPhoneの絵文字は iOS2.2から絵文字を扱えるようになりましたが、 当初はSoftbankのUnicodeマッピングになっていました。しかし、現在のiOS5.1ではUnicode6.0の絵文字が使用されているようです。Railsで、Opensocialのアプリを作っているのですが、 jpmobile…

Scala勉強日誌 - Actor

今日のテーマは「Actor」です。 チャット作ってみようと思って、Play2.0のサンプルにある WebsocketChatのコードを見ていたらActorが出てきて、 全く理解できずw そういえば、さらっと勉強して、すっかり忘れていたので ちゃんと勉強してみる事にしました。…

ORMを使う - Squeryl

最近Scala勉強してます。仕事ではここ半年以上ずっと、Railsなので、 ScalaではPlayを使ってみようと思い、始めました。ただ、ことDBアクセスに関してはPlay標準のAnormは、なんかしっくりこない、、、 ActiveRecord的な感覚で使えるORMは無いものか、と。色…

ifの条件式で代入もしてしまう

好みの問題なのかもしれません。 (と、思っているのは、自分の知識が浅いからかな?) 以下のようなコードがあったとします。 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式の対象オブジェクトのメソッドの戻り値を条件に使用する

うん、タイトルだけだと、意味わからん、という感じかと、、、 わかるかな? なんて書いたらいいのか、悩んだので、 とりあえず、書いてみました。 コードで示した方が分かりやすいかと。 ※やりたいと思った事(以下のコードは間違ってます) case hoge when…

RVMとEmacs

EmacsでRubyの開発を行う場合、 おそらくみなさんFlymakeを使っているのではないかと 勝手に思い込んでおりまして、 私はFlymakeを使っている次第でございます。 「emacs flymake ruby」とかググると、 まぁ、いろいろ出てくるわけですが、 例えば、 EmacsWi…

Gitのdiffツールとマージツールを設定する(p4merge)Mac

Gitのデフォルトの設定で、diffを見ると パッチの形式で表示される為、 ぶっちゃけ人間が見ると見づらいんですよ、、、 (慣れろ、俺。とは思うけども。 % git diff diff --git a/src/collection/set_and_map/MapSamples.scala b/src/collection/set_and_map…

知らない内に活用してるメソッド to_proc

Ruby1.9を使用している人は知らないうちに(?)活用してると思いますが。 Ruby1.9から、Symbol#to_procを使用するのにライブラリは不要になりました。 初めて見た時は、なんじゃこりゃーー、と思ったけど、 意味が分かれば、どうってことは無い。 例えば、…