ruby

rubyでエクセル

時間もあったしjavaは飽きたからrubyでエクセルからエラーコードの情報を抜いてみた。 書き捨てのスクリプトだからわりと適当。やっぱ高階関数いるよ。いるって。javaにも入れろよ。 高階関数には無名関数が必要だよ。 # -*- coding: utf-8 -*- require "win…

RVM入れた(ホントは結構前に)

おもい腰を上げてRVM導入 参考にしたサイト Mac に rvm をインストールして 複数バージョンの Ruby を使う - hogehoge foobar Blog Style5 nashiwaterの日記 以下コマンド等 rvm list knownインストール可能なrubyのリスト rvm install x.x.xrubyのインスト…

rubyで入力補完したいんだけど(rsense)

railsをいろいろといじってみてるんだけど、型とコンパイルのない言語だとtypoがひどい。 しょうもない入力ミスを探すので時間を使うのがもったいなくて入力補完してくれるelispを探す。 で、rsenseってのを見つけたんだけど、これが動かない。 M-x rsense-v…

lispとrubyとpythonと その8 ファイルIO(ruby)

Rubyではこんな感じ。 pack、unpackがよく分からない。perlな人には馴染み深いのかなぁ。 # -*- coding: utf-8 -*- #テキストファイル書き込み def f0() f = File.open("./test.txt","a") begin f.write "hello world\n" ensure f.close end end #テキストフ…

lispとrubyとpythonと その7 継続とFiberの続き(ruby)

継続ってスタックをどっかに保存しとくんだろうけど、じゃあ別スレッドの継続ってどうなるんだろ、と思って実験。 RuntimeError: continuation called across threads だって。 require 'continuation' puts "\n" $c1 = nil def test0(arg) printf "test0 be…

lispとrubyとpythonと その7 継続とFiber(rubyと少しだけlisp)

頭が継続脳になっていないためかもしれないけど、継続欲しいなー、、、と普段思うことはない。 でもまぁ継続があるのもrubyの特徴なのかなぁ、と思ったので書いてみる。 簡単な例。 require 'continuation' i = 0 c1 = nil callcc do|c| c1 = c end i = i + …

lispとrubyとpythonと その6 正規表現(ruby)

Rubyでの正規表現。 # -*- coding: utf-8 -*- #正規表現リテラルは/で囲む #Regexp.new(...)でもいい rx = /(?<p>.*):\/\/(?<d>.*)\// target = "http://faroffsea.blogspot.com/" #matchの戻り値はMatchData captures = rx.match target #/(?<p>.*):\/\/(?<d>.*)\//.mat</d></p></d></p>…

lispとrubyとpythonと その5 例外処理(ruby)

common lispと比べると普通。 # -*- coding: utf-8 -*- #例外処理 def test1 begin #raise #例外を発生させる #raiseだけ書くとRuntimeErrorになる #raise #raise "test error!" #例外の種類を指定して発生させる #その1 #カンマで区切って例外クラスとメッ…

rubyのfiber

RubyにはジェネレータがないかわりにFiberがある。 リファレンスはここ404 Not Found require "fiber" f = Fiber.new do i = 0 while(true) Fiber.yield i i = i + 1 end end f.resume #=>0 f.resume #=>1 f.resume #=>2

lispとrubyとpythonとC# イテレータ

偶数だけ抽出して+1した数値を列挙するコード。 RubyとPythonとCommonLisp(series)とC#で書いた。Rubyは遅延評価しないのが微妙。 Ruby1.9のイテレータの意図がよく分からない。 ブロックを省略するとEnumeratorが返るけど、なんでそうなってるんだろ。 ブ…

lispとrubyとpythonと その2(ruby) ver2

その2のruby編。 ほとんど更新なし。 ミリ秒取得部分とinstance_evalを書いたくらい。 ruby楽だなー。common lispに比べると・・・。 # -*- coding: utf-8 -*- #! /usr/bin/ruby -Ku #参考 #http://www.namaraii.com/rubytips/ #文字列連結 puts s = "abc" +…

lispとrubyとpythonと(ruby) ver2

rubyも復習がてら昔のエントリを更新。 ちょっとだけ追記した。 # -*- coding: utf-8 -*- #コメント #標準出力に表示 puts "こんにちは" #->こんにちは # #改行は\n puts "こんにちは\n" #->こんにちは # #タブは\t puts "こんにちは\tこんにちは" #->こんに…

lispとrubyとpythonと その4 Cライブラリの呼び出し(まとめ)

それぞれの言語でCと連携してみたまとめ、というか感想というか。 lispもRubyもPythonも呼び出し自体はわりと簡単。 ちゃんと動くかどうかは別として・・・。 一番すんなり理解できたのはSBCLだったような気がする。 Rubyの「拡張ライブラリをCで書く」って…

lispとrubyとpythonと その4 Cライブラリの呼び出し(ruby)

つぎはruby。 rubyだとCライブラリを呼び出すというよりはrubyのクラスをCで書く感じ。 ruby1.9でためしたんだけど、1.9では RSTRING(xxx).ptr とか RSTRING(xxx).len ではなくて RSTRING_LEN(xxx) RSTRING_PTR(xxx) と書くみたい。参考はこのへん。 http://…

lispとrubyとpythonと その3 リスト処理 (ruby)

ずいぶん空いた。 ・まず12時前にはかえれない。 ・週1〜3日は朝の4時とかまで働く。 ・土日も結構仕事(家でできるけど) って状態はどうなんでしょ?? つかもーイヤになってきた。愚痴はともかく。 その3はリスト処理がメイン。 やることが多いのでこれ…

lispとrubyとpythonと その2(ruby)

次はruby。 lispをやったあとだと、全てがクラスラライブラリに入っているrubyが書いたり調べたりするのが楽。 #! /usr/bin/ruby -Ku #参考 #http://www.namaraii.com/rubytips/ #文字列連結 puts s = "abc" + "あいうえお" #文字列の分解 "あaあ,いiい,うu…

lispとrubyとpythonと その2

ずいぶんあいたけど続き。 このペースだといつまでかかるか、そもそも続くのか分からないけど、目標は下の一覧に書いたことをlisp、ruby、Pythonで一通りやてってみることが目標。 ほんとはschemeとhaskellとOCamlでもやりたい。あ、一応、javaかC#もあれば…

lispとrubyとpythonと(感想)

三つ触ってみて思ったこと。 python タイプ量が少ないような気がした。 オフサイドルールが結構いい。ブレース打ったり括弧打ったりする手間が丸ごとなくなるって思ったより快適だった。 lisp書いたあとにpythonを書くと「なんだかサクサクすすむな」という…

lispとrubyとpythonと(ruby)

最後はruby。 Rubyも始めて書いた。噂で色々と聞いていたので結構違和感がない。 #コメント #標準出力に表示 puts "こんにちは" # print "こんにちは" # #改行は\n puts "こんにちは\n" #タブは\t puts "こんにちは\tこんにちは" #フォーマット #cのprintfと…

lispとrubyとpythonと (REPL)

common lispとPythonを比べてみた。 pythonには興味があったし、いい加減MS以外のことをやりたくって。。。 で、、、ついでにRubyも触ってみた。 schemeも触ろうか、と思ったんだけどそこまでは時間がない。まずはいじるためにemacsとREPLの整備 common lisp…

後でかけるruby

qnzm.log(クニジマログ)のところでRubyのコード見ていて、Rubyって後から書けるのが何気に気持ちよさそうでちょっといいな、と思った。 xxx if xxx とか xxx unless xxx とか。 http://www.ruby-lang.org/ja/man/html/_C0A9B8E6B9BDC2A4.html を見てみると、…

Rubyのブロック

Guarded Suspension - qnzm.log(クニジマログ)を読んでの続き。 Rubyのブロックが気になって調べてみた。http://itpro.nikkeibp.co.jp/article/COLUMN/20050930/221979/ でまつもとさんが ・ブロックが制御構造を作る ・制御構造っぽく見せるためブロックを…