タグ

ブックマーク / melborne.github.io (7)

  • Rubyのcaseを〇〇(言語名)のswitch文だと思っている人たちにぼくから一言ガツンと申し上げたい

    Rubyのcase」を一瞥し「あー要は〇〇(言語名)のswitchね」などと早合点し、その後もその真の価値を知ることなく一生を終えるプログラマが近年跡を絶たない。加えて、「今更条件分岐?RubyはOOPなんだからポリモフィズムじゃね?」とか「HashにProc突っ込んでcallするのがオレ流。」とかうそぶく人たちもまた増加の一途を辿っている。 そんな世の中にあって、ぼくは一言、できればガツンと一言申し上げたい。生まれも育ちもRubyなぼくから、是非ともそんな人たちに「Rubyのcase」について一言申し上げておきたい。 ─ 問題1 ─ 名前name、レベルlevel、ポイントpointの各属性を持った複数のCharacterオブジェクトcharlie, liz, benがある。 class Character < Struct.new(:name, :level, :point) def

    motchang
    motchang 2016/05/18
    case に Proc とれるのいいな
  • M'ELBORNE BOOKS

    hp12c 100円 Gumroadで購入 105円 Gumroadで購入 100円 Gumroadで購入 100円 Gumroadで購入 100円 Gumroadで購入 100円 Gumroadで購入 100円 Gumroadで購入 100円 Gumroadで購入 500円 Gumroadで購入

  • ((Rubyで) 書く (Lisp) インタプリタ)

    Peter Norvigさんの((Pythonで) 書く (Lisp) インタプリタ)(青木靖さん訳)という記事がすごい。100行ほどのPythonコードで、Schemeのインタプリタの基部分を書いている。Pythonのコードは見た目がRubyのコードとよく似ているので、Rubyしか知らない僕でも何となく読める。 この記事を解読してRuby版Schemeインタプリタを書いたら、インタプリタ Pyhon Scheme それからRubyのことも、もう少し分かるようになるかもしれない。こんなお得な勉強方法はないぞ。きっと。 そんなわけで… 以下では上記記事を参照しながら、Ruby版Schemeインタプリタを書いていきます。文では適宜Norvigさんの解説およびコードを引用しつつ、自分の理解とRubyのコードをpythonのコードと対応させていきます。Rubyのインタプリタ名はlisr.rbと

  • Ruby Graphvizラッパー「Gviz」でアメリカ合衆国をデータビジュアライズしよう!

    (追記:2014-3-3) Gvizについてのまとめ頁を作りました。 Gvizの目次 - Rubyの世界からGraphvizの世界にこんにちは! RubyのGraphvizラッパー「Gviz」を前回紹介しました。 Yet Another Ruby Graphviz Interfaceを作ったからみんなで大量のグラフを作って遊ぼうよ! そこでは隣接県情報に基づき日地図を作りました。出来は兎も角、僕はこのやり方がすっかり気に入りました。そこで今回はもう一歩進んでこの地図でデータビジュアライゼーションをしてみようと思います。題材はアメリカ合衆国です! 以下では、データの取得から順を追ってグラフ作成のやり方を説明しています。ちょっと長い投稿になります。 隣接州情報の生成 地図の形のベースとなる隣接州情報を用意します。List of U.S. state abbreviations - Wikip

    Ruby Graphvizラッパー「Gviz」でアメリカ合衆国をデータビジュアライズしよう!
    motchang
    motchang 2013/03/25
  • Ruby脳が理解するJavaScriptのオブジェクト指向(その3)

    Ruby脳が理解するJavaScriptのオブジェクト指向 」および「Ruby脳が理解するJavaScriptのオブジェクト指向(その2) 」の続きです。 引き続きJavaScriptにおける「Object.create」について学んだので、自分の理解を書いてみます。当然に、間違いが含まれています。ご指摘助かります。 [注意事項!]はっきり言ってRubyはもう全然関係ない記事になっています。記事のタイトルにおける「Ruby脳が」を「僕が」に置換して、納得された上で以下の記事をお楽しみ下さいm(__)m new 演算子問題に対する解決策を考える JavaScriptにおいて同種のオブジェクトを複数生成するには、クラス風記法のコンストラクタ関数とnew演算子の組合せを利用するのが便利だと学びました。その一方で、この特殊コンストラクタはnewを忘れると深刻なバグを生むという問題が指摘されていま

  • Rubyのinjectで東京までの最短経路を解くYO!

    「すごいHaskellたのしく学ぼう!」の第10章に、Haskellを使って「ヒースロー空港からロンドンへの最適経路(optimal path)」を算出する例が出ていました。例ではその実現に畳み込み演算が使われていたので、前回同様、Rubyでもinjectを使ってこの問題を解いてみたいと思います。アヒル脳じゃなかなかHaskellの世界に入っていけませんよー。 オリジナルの解説(英語)とHaskellによる解法は、以下にあります。 Functionally Solving Problems - Learn You a Haskell for Great Good! 問題 問題設定は次のようなものです。 1. 成田空港(NRT)から東京(Tokyo)に向かう2の幹線道路A,Bがある。 2. 途中にこれらを橋渡しする3の地方道路Cがある。 3. 地方道路で区切られる各道路セグメントの通過に

  • これからRubyを始める人たちへ

    (追記:2012-12-03) 記事を電子書籍化しました。「Gumroad」を通して100円にて販売しています。詳細は文末に追記しましたので、購入ご検討のほどよろしくお願いしますm(__)m 電子書籍「これからRubyを始める人たちへ」EPUB版 Rubyの特徴 Rubyは、まつもとゆきひろ氏(通称Matz)により設計されたオブジェクト指向プログラミング言語です。Rubyの特徴を一言で言うならば、それは「間口が広くて奥が深い言語」ということになります。 「間口が広い」というのは、インタフェースがシンプルで誰でもが簡単に使い始められることを意味します。「奥が深い」というのは、プロフェッショナルによる長期使用に耐えうる物の言語であるということを意味します。「間口が広い」ということと「奥が深い」ということは来競合する概念ではありませんが、その両方をバランスよく組み合わせるには、対象に対する

  • 1