タグ

ブックマーク / keyesberry.hatenadiary.org (10)

  • Rubyで論理プログラミングしようよ! - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 Rubyで論理プログラミングしようよ! : melborne.github.com - 人生は選択の連続だよ 1つの選択が君の未来を変えるよ そして残念なことに 後からその失敗に気がついても 選択をやり直すことは人生ではできないんだよ.. コンピュータプログラムにも似たようなところがあるよ プログラムは一度走り出したら止まらないから 途中の分岐で選ばれた選択を 後から変えるのは得意じゃないんだ 問題1 例えば次のような問題を考えてみるよ xが1,2,3の何れかで yが4,5,6の何れかであるとき x + y = 7 となるx, yの組みを求めよ x, yには複数の選択肢があって xの決定はyの決定に影響を与えるから その組み合わせを決めるためには 人間がするのと

    Rubyで論理プログラミングしようよ! - hp12c
  • 知って得する21のRubyのトリビアな記法 ~ 21 Trivia Notations you should know in Ruby - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 知って得する21のRubyのトリビアな記法: melborne.github.com - ちょっとトリビアだけど 知っていると意外と便利なRubyの記法を 21個拾ってみたよ(Ruby1.9限定) 君なら全部知ってるかもしれないけど.. 1. 動的継承 Rubyのクラス継承では < 記号の右辺に クラス定数だけでなくクラスを返す式が書けるよ class Male def laugh; 'Ha ha ha!' end end class Female def laugh; 'Fu fu fu..' end end class Me < [Male, Female][rand 2] end Me.superclass # => Female Me.new.laugh

    知って得する21のRubyのトリビアな記法 ~ 21 Trivia Notations you should know in Ruby - hp12c
  • SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ! - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ! : melborne.github.com - Sinatraのサイトを開くとSinatraはDSLだと書いてある Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort: (SinatraはRubyで手早くWebアプリケーションをつくるためのDSLです) DSLというのはDomain-Specific Language つまり特定の目的に特化した言語のことだ 確かにSinatraはWebアプリケーションという 特定の目的のために作られたものだけれども それは言語じゃない

    SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ! - hp12c
  • IRB それはRubyistの魔法のランプ - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 IRB それはRubyistの魔法のランプ : melborne.github.com - IRB*1 名前を聞けば誰でもわかる 超有名なライブラリ IRBを知らなけりゃ それはもぐりのRubyist :$ IRB 全部のRubyに付いてくる あなたとRubyの対話の窓口 できないことがあるのなら irbと打ってみよう rubyと打ってもダメですよ IRB それはRubyistの魔法のランプ こすれば何かが現れる IRB それはRubyistの魔法のランプ こすって願いを叶えよう I RuB you I RuB you :TO IRB 色気がないのはご愛嬌 色がいるなら .irbrcしてください 補完だってインデントだって そうしたいならプロンプトだって あなた

    IRB それはRubyistの魔法のランプ - hp12c
    ku-kai27
    ku-kai27 2010/11/18
    Irbについて
  • Ruby.Sinatra.Git.Heroku #=> "Happy Web Development!" - hp12c

    Ruby 10年前にRubyといえば7月の誕生石のことか 5.5ポイント活字のことでした でも今はGoogleを30頁めくっても に誕生石をプレゼントすることはできません 宝石店のSEO対策は 日人の作った言語セットの前では無力なのです この点PerlのLarryさんは巧妙にやりました Pearlは今も6月の誕生石の地位を守っています ここにLarryの奥さんは6月生まれであり Matzの奥さんは7月生まれでないとの仮説が成り立ちます Sinatra なぜWebフレームワークの名前を Sinatraとしたのか皆目検討も付きません シナトラハットがトレードマークですから そうなんでしょうがそれにしても... Railsとは違うMyWayを行くという意味でしょうか それとも裏社会との繋がりを暗示しているのでしょうか まさか「支那虎」ですか? ー名は体を表すー といいますが これほどに体をイ

    Ruby.Sinatra.Git.Heroku #=> "Happy Web Development!" - hp12c
    ku-kai27
    ku-kai27 2010/10/01
    チュートリアルその3
  • Rubyのブロック(クロージャ)はローカル変数をインスタンス変数に変えるマジックだ! - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 Rubyのブロック(クロージャ)はローカル変数をインスタンス変数に変えるマジックだ! : melborne.github.com - Ruby クロージャ - ソースコード備忘録を読んで 自分のRubyにおけるブロックと変数の理解が怪しいことがわかった でちょっと普通とは違うアプローチからの整理を試みて 理解できた気がするので書いてみます 誤りを教えてくれればうれしいです ローカル変数 プログラムコードはプログラマの意思をインタプリタに伝えるものだ Rubyでは オブジェクトに処理を依頼する形でプログラムを組成するけど そのとき変数はプログラマが 対象のオブジェクトを指し示すためのラベルとして用いられる すなわち変数はオブジェクト参照ラベルだ 複数の手続きブロッ

    Rubyのブロック(クロージャ)はローカル変数をインスタンス変数に変えるマジックだ! - hp12c
  • Rubyでいろんなかたちと矢印のグラフを書こう! ーGraphViz Shape&Arrow見本 - hp12c

    GraphVizを使ったグラフ作りは楽しい でも以外と時間が掛かる 特に時間を取られるのはノードのかたちと エッジの矢印選びだ GraphVizで使えるかたちと矢印は豊富だけれども 豊富過ぎて名前を見ただけではそれがわからない だから前々回作ったGraphAzで見を作ってみた これでかたちと矢印選びもばっちり!

    Rubyでいろんなかたちと矢印のグラフを書こう! ーGraphViz Shape&Arrow見本 - hp12c
  • Rubyでアニメーション・グラフを作ろう! - hp12c

    ベルマンフォードのアルゴリズムで実行される結果も逐次表示 - Seeking for my unique color. を見てGraphVizの出力からアニメーションgifを作りたくなった Rubyにはruby-graphvizというGraphVizのinterface libraryと RMagickというImageMagickのinterface libraryがあり これらを使えば目的は達成できるみたいだ ruby-graphvizのinterfaceは自分にはわかり辛かったので これをラップする形でGraphAz*1というクラスを書いて 上のアニメーションgifを出力してみた 用途が限定的で実装にも問題がありそうだけれど GraphVizのDOTデータの出力としても使えるので 無責任無保証で使ってくれる人がいればうれしい 使い方 コードを見るのが早いと思うので 簡単な例を示した ま

    Rubyでアニメーション・グラフを作ろう! - hp12c
  • Rubyで最短経路を探索しよう! - hp12c

    人生を書き換える者すらいた。: 人材獲得作戦・4 試験問題ほか 次に同じ質問がきたときに 「1時間いらないっしょ、こんなの」 と是非ともほざくために 今から勉強します ダイクストラ法による最短経路探索 図におけるS点からG点に到達するための最短経路を求めたい 各ノードを結ぶエッジを糸としてS点をゆっくりと持ち上げた場合 緊張する糸が変移しながら最終的にS−B−D−Gを結ぶ糸が緊張して これが最短経路と分かる*1 計算機上でこの現象をシミュレートしたものを ダイクストラ法というらしい 今各ノードとそこから伸びるエッジの情報(コストと接続先)を渡して その最短経路および総コストを出力するプログラムを考えてみよう data = { :s => [[5, :a], [4, :b], [2, :c]], :a => [[5, :s], [2, :b], [6, :g]], :b => [[4, :s

    Rubyで最短経路を探索しよう! - hp12c
  • SchemeとRubyでリストの操作を学ぼう - hp12c

    引き続き「計算機プログラムの構造と解釈」を使って 今度はSchemeとRubyでのリストの操作を見ていこうと思います なおSchemeのコードは書からの抜粋で 説明は自分の要約です リスト要素の参照 Schemeにはデータオブジェクトの並びを表現する リストというデータ構造がある リストはlist手続きで作ることができるが これはconsを入れ子にしたものと等価である list 1 2 3 4 (1 2 3 4) (cons 1 (cons 2 (cons 3 (cons 4 nil)))) (1 2 3 4) だからconsを順にcdrダウンしていけば リストの各要素にアクセスできる これを使って リストのn番目の要素を返す手続きlist_refを定義する リストは0番から始まる (define (list_ref items n) (if (= n 0) (car items) (l

    SchemeとRubyでリストの操作を学ぼう - hp12c
  • 1