プログラミング

githubを使い始めてみた

Webプログラマーを名乗るのにgithub使ったことないってのはちょっと恥ずかしい気がしたので今更ながらgithubを使い始めてみた。使い方の練習がてらProjectEulerのコードを公開するようのレポジトリを用意してみた。https://github.com/tomotaka/ProjectEuler…

なぜRubyを使うのか

最近なぜPerlを使うのか?という問いに対するアンサーエントリーがいろんなところで見られますが、これは各言語のユーザがやってみるとその言語のポジティブな部分が見れていいのではないかと思いますので僕もLLでは一番気に入っているRubyをなぜ気に入って…

30byte FizzBuzz問題チャレンジ

i=0;loop{i+=1;m="";m<<"Fizz" if (0==i%3);m<<"Buzz" if (0==i%5);puts(m!=""?m:i)} 79が限界でした。(5分で挫折)ちょっとがんばったら75になった。そして71になった。 # 75 i=0;loop{i+=1;m=""<<(i%3==0?"Fizz":"")<<(i%5==0?"Buzz":"");puts(m!=""?m:i)} …

Rubyのhashメソッドをきちんと実装するには?

データ構造のハッシュテーブルにオブジェクトが利用されることを想定する場合、同値性を確かめるeql?メソッドと、同じ値のオブジェクトに対して実行すると同じ値のFixnumを返すhashメソッドを実装する必要があります。これを実装しておかないと、自分で独自…

リアクティブプログラミング

class ReactiveValue def initialize(&proc) @proc = proc end def value return @proc.call end end a = 1 b = 2 c = ReactiveValue.new{ a + b } p c.value #=> 3 a = 2 p c.value #=> 4 こういうことなんだろうか。