Ruby

Inverse Fizzbuzzを解いてみる

Inverse Fizzbuzzについては、ゆろよろさんのサイト参照。 def inverse_fizzbuzz(list) i=(' f bf fb f x'*2).index(list.map{|e|{'fizz'=>:f,'buzz'=>:b,'fizzbuzz'=>:x,''=>' '}[e]}.join)+1 (i...i+list.size).to_a end p inverse_fizzbuzz(['fizz']) p i…

無限リスト

某勉強会で『ふつうのHaskellプログラミング』を読んでいる。 4年前に読んだはずなのだが内容はすっかり忘れていた。身についていなかったということだろう。今回もそうなりそうだが、Scalaを使いこなす基礎知識が少しは得られそう。 今回の勉強会で、与え…

RubyでGUI C#からRubyを呼び出す

IronRubyの1.0がリリースされたので、C#からRubyの呼び出しを試してみる。まず、C#のプロジェクトを作成。 formにtextboxとbuttonを一つずつ配置する。 デザイナのbuttonをダブルクリックしてForm1の編集画面へ。 編集前に、参照設定にIronRuby/bin下の Iron…

バケツ問題

某プログラム勉強会で、お題が出たので解いてみる。 問題 水がいっぱい入ったバケツ一個と、空のバケツがいくつかあり、それぞれのバケツの容量は正確にわかっている。この状態から指定された容量を量りとる、最 小手数の手順を求めよ。 ただし ・バケツから…

切符問題

某プログラム勉強会で、お題が出たので解いてみる。 いくつかの正の整数と加算・減算・乗算 の3つの演算子(そして、括弧)を使って、ある別の正の整数を生成する方法を探し出すプログラムを書け。 例えば。{2,5,6,8}から10を生成する方法は、例えば (2+8)*(…

gemの更新

Windows環境にパッケージをgemでインストールしようとしたところ、gemのバージョン1.3.1以上じゃないと駄目だと叱られる。 > gem -vの結果は1.1.1。ActiveScriptRubyでインストールされたもの。 > gem update --systemで更新しようとすると、"Nothing to upd…

ナップサック問題?

某プログラム勉強会で、お題が出たので解いてみる。 あなたは硬貨を何枚か持っており、ある金額を払いたい。 お釣りの金額が最小となるような硬貨の組み合わせと、その場合のおつりを計算せよ。 硬貨の価値はすべて正の整数、払いたい金額も正の整数で、オー…

数学のお勉強

某プログラム勉強会で、お題が出たので解いてみる。[問1]6面体のサイコロを3回振る。同じ目が一度も出ない確率を計算せよ。6P3/63 = 5/9簡単な確率問題。 3回の試行で同じ目が出ない組み合わせ(6P3)を、3回の試行の全ての可能性(63)で割る。[問2]128bitの乱…

エンコーディングは俺が決める

RubyのMechanize、使っている人はどのくらいいるのだろう? 少し前のruby-listに「MechanizeはRubyのキラーアプリになる云々。」という投稿があったけれど、そんなにニーズがあるのだろうか?自分は便利に使っているけれど・・。 そのMechanize、ページのエ…

Unicode実態参照をUTF-8文字列に変換

Unicode実態参照をUTF-8文字列に変換するという処理が必要になった。 標準添付ライブラリに使えるクラスが当然あると思って探したけれど、無い…。ググった結果HTMLEntitiesを発見。インストールは gem install -r htmlentities使ってみる import "rubygems" …

GroovyとRuby

前回作ったマクロはjFD2の作者にも使ってもらえたようだ。 で、「ファイルの表示順を大文字小文字を区別しないようにして欲しい」とのリクエスト。検索では大文字小文字区別していないのだから当然の要求である。自分では小文字のショートカットしか使ってい…

どう書く?org、コードの評価

アカウント取得で管理人さんの手を煩わせてしまった「どう書く?org」。Rubyで何件か投稿したところ、コードをプラス評価をして頂けることも増えてきた。 これまでの投稿は、お題からそのまま凝ったことはしていないので、Rubyをある程度使っている人なら大…

NetBeans6.0リリース

Netbeans6.0がリリースされました。 開発者・関係者の皆さんご苦労様でした。 Rubyの開発環境の選択肢が増えたことを素直に喜びたいと思います。 とりあえずRC1->RC2と引き継いだ設定ファイルをコピーして使っていますが快適です。 まあ、自分の使い方ではRC…

どう書く?org

プログラム言語関連のブログを見てるとどう書く?orgのお題についての言及が目に付く。 お題が結構いいし、回答も面白い。複数の言語で回答があるので、その言語の特徴を知るのにも役に立つ。 自分も参加しようとアカウントを作ろうとしたが登録メールが届か…

NetBeans リファクタリング

beta 2からの新機能かどうかわからないけど、リファクタリング機能が付いた。 と言っても、今の所クラス名・メソッド名のリネームだけ、しかもご丁寧に「リファクタリングは正確じゃないから目視でチェックしてね」とメッセージが出る。 この状態で評価する…

NetBeans beta 2

NetBeansのbeta 2が出ていた。 beta 1で特に大きな問題はなかったので見送るかと思ったけど、機能追加もあるようなので導入。 ●インストール beta 1とは別フォルダーにインストールされるので、何も考えずにインストール。 設定ファイルも別フォルダー。 ~/.…

NetBeansコード補完

NetBeansのエディタはRubyでもコード補完をしてくれる。 型宣言のあるJavaやC++ならともかくRubyでコード補完はどうよ、ってことでちょっと試してみた。 foo="Foo" foo.と入力した時点でStringクラスのメソッドの一覧が表示される*1。 しかし foo=true ? "Fo…

Rangeの積

「Rangeの積を求める」をやってみたにはコメントしたのだが、ちゃんと実装するのは面倒そうと思っていた。 で、いざ実装してみると、やっぱり面倒だった・・。to_aして、変換できるクラス(succが定義されているクラス)ならそのArrayの積を取る。 効率は悪…

define_method

るびま21号の石塚さんインタビューで define_method というメソッドの存在を知る。試してみた。 class Foo def initialize(val) @current=val end 5.times do |i| define_method("plus"+i.to_s){@current+=i} end endfoo=Foo.new(10) p foo.plus1 #11 p foo.…

NetBeans 6.0 Beta 1キーアサイン

IDEのエディタの編集機能に期待していないので、外部エディタを常用しIDEのエディタは非常用としてデフォルトの設定で使うことが多いが、NetBeansではrhtmlの編集等エディタの補完機能が充実してるので、使う機会が増えそうな気がする。 で、キーアサインの…

NetBeans 6.0 Beta 1インストールメモ

Eclipseだと、プラグインを入れたりしないと望む環境ができなかったりするけど*1、NetBeansはhttp://www.netbeans.org/community/releases/60/index.htmlから全部入りを落としてきてインストールするだけ。らくちん。 RubyもJRubyが入っているからインストー…

NetBeans 6.0 Beta 1

Java開発では今の所使う予定がないけれど、Ruby(Rails)開発のIDEとして期待。 このベータリリースでだいぶ安定して、仕事で使える、使いたい。 デバッグ機能が嬉しい。といってもブレークポイントを指定してステップ実行というごく普通の機能なんだけど、Rad…