タグ

rubyとsyntaxに関するoinumeのブックマーク (13)

  • Learn ruby in Y Minutes

    # This is a comment =begin This is a multi-line comment. The beginning line must start with "=begin" and the ending line must start with "=end". You can do this, or start each line in a multi-line comment with the # character. =end # In Ruby, (almost) everything is an object. # This includes numbers... 3.class #=> Integer # ...and strings... "Hello".class #=> String # ...and even methods! "Hello".

  • 第5回 Ruby 1.9 の新機能ひとめぐり(後編): 知っておくとお得な機能 | gihyo.jp

    前編では1.9の目玉機能を、中編では文法や意味論の改善について紹介しました。 後編である今回は、知っておくとお得な機能を取り上げたいと思います。きっとあなたのRubyライフを快適にするでしょう。 鬼車による正規表現の強化 1.9では正規表現エンジンに鬼車を採用したため、鬼車による拡張機能が利用可能になりました。 名前を使った参照 マッチした部分文字列を、$1や$2のようなインデックス番号ではなく、名前で参照する機能がつきました。 コード1 正規表現のマッチ部分を名前で参照する # (?<foo>...) にマッチした部分を $~[:foo] で参照できる if "Taro Yamada" =~ /^(?<first_name>\w+) (?<last_name>\w+)$/ p $~[:first_name] #=> "Taro" p $~[:last_name] #=> "Yamada"

    第5回 Ruby 1.9 の新機能ひとめぐり(後編): 知っておくとお得な機能 | gihyo.jp
  • 知って得する!55のRubyのトリビアな記法

    Rubyはたのしい言語です。Rubyを触っているとマニュアルにも書いていない「小さな発見」に遭遇することがよくあります。このような「発見」は、プログラムの質や効率の改善には直結しないかもしれません。いや、むしろチームプログラミングでは妨げになる可能性すらあります。しかしその一方で、言語自体が自分の知らない領域を持ち続けていることが、その対象に対する興味を失わせないための大きな要因である、というのもまた疑いのない事実なのです。つまり「発見」はたのしさに直結しているのです。 このブログにおいて「知って得するRubyのトリビアな記法」というタイトルで、今まで3回記事を書きました。 “知って得する21のRubyのトリビアな記法” “第2弾!知って得する12のRubyのトリビアな記法” “第3弾!知って得する12のRubyのトリビアな記法” これらのトリビアには、ネット検索で見つけたもの、Twitt

  • Ruby 2.0 メモ: Lazy と LINQ とループ融合

    2012-06-15 (鈴) 1. はじめに 2. Ruby 2.0 開発版のインストール 3. Enumerator::Lazy 4. ループ融合としての解釈 5. C# の LINQ との比較 6. おわりに 1. はじめに 稿では Ruby 2.0 に予定されている Enumerator::Lazy について,先行する概念と対照して考察する。 それが計算量の観点からループ融合の最適化に等しいことを非形式的に論ずる。 また,C# の LINQ と実質的に同じものであることを示す。 以上の議論から Enumerator::Lazy が来るべき Ruby 2.0 の最も重要な機能の一つであることを示す。 2. Ruby 2.0 開発版のインストール 執筆時現在,Ruby 2.0 の処理系は https://github.com/ruby/ruby から $ git clone https

  • Ruby脳が理解するJavaScriptのオブジェクト指向

    (追記:2012-12-15) 記事およびこれに続くその2,その3をまとめて電子書籍化しました。「Gumroad」を通して100円にて販売しています。内容についての追加・変更はありませんが、誤記の修正およびメディア向けの調整を行っています。 電子書籍Ruby脳が理解するJavaScriptのオブジェクト指向」EPUB版 このリンクはGumroadにおける商品購入リンクになっています。クリックすると、オーバーレイ・ウインドウが立ち上がって、この場でクレジットカード決済による購入が可能です。購入にはクレジット情報およびメールアドレスの入力が必要になります。購入すると、入力したメールアドレスにコンテンツのDLリンクが送られてきます。 購入ご検討のほどよろしくお願いしますm(__)m 関連記事: 電子書籍Ruby脳が理解するJavaScriptのオブジェクト指向」EPUB版をGumroadか

  • Rubyで未使用変数を指摘するプログラム - miura1729の日記

    kwatchさんの日記を読んで( http://d.hatena.ne.jp/kwatch/20100616/1276650107 )、未使用変数を指摘するプログラムを考えてみました。バイトコードを解析するという方針で、プログラムを作ってみました。Ruby1.9でしか動かないです。 http://gist.github.com/501900 こんな感じで使います。ちなみに、プログラム中にわざと1つ未使用変数が入れてあります。 bash-3.2$ ruby varcheck.rb varcheck.rb Unused variable 'a' in VarChecker#unused_check

    Rubyで未使用変数を指摘するプログラム - miura1729の日記
  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • Python Decorators in Ruby Continued

  • Shibu's Diary: RubyにもPythonのデコレータを

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 Pythonのデコレータがとっても便利です。すごくステキ。シンプルな文法のシンタックスシュガーなのに、夢がすごく広がります。僕がデコレータを格的にさわったきっかけは、TurboGears。ビューのクラスのメソッドに、@exposeとやると、そのメソッドがルーティングテーブルに登録されて、ブラウザからそのメソッド名のURLをたたくと、外から呼び出せるようになる、という仕掛けです。実際に、内部で行われている処理はこんな感じです。 #pythonのデコレータのサンプル @expose def exposed_method(): pass #こうやって解釈される def expsed_method(): pass exposed_method = expose(exposed_met

  • class << selfを調べてたら特異メソッドとか特異クラスとか出てきた - マグネシウムライト

    普段マジメにソース読みをしないせいで自分の書き方以外のコードが読めない読めない。もっとマジメにコード読もうと思う。 てなわけで今日はclass << selfってなんだよって思ってた。結論はクラスメソッドを複数作成したいときに便利な構文。 で、"class << hoge"というイディオムを調べてたら「特異クラス」の一種だとか。ああ、特異クラスという言葉は聞いた事あった。特異メソッドというのもあったね。 ということでRubyリファレンスから勉強。 6.4 特異メソッドとは何ですか foo = Foo.new def foo.hello print "Hello\n" end foo.hello つまりクラスを拡張することなくオブジェクトにメソッドを追加しちゃうわけっすね。 じゃあ、特異クラスって? 6.6 特異クラスとは何ですか class Foo def hello print "hel

    class << selfを調べてたら特異メソッドとか特異クラスとか出てきた - マグネシウムライト
  • RubyでPythonのdecoratorを実装する。 - このブログは証明できない。

    こちらのスライド。RubyRubyを拡張する。つまりメタプログラミングの話。 Extending Ruby with Ruby // Speaker Deck メタプログラミングを使って他の言語の機能を実装しようという内容になってる。 Python: Function decorators Scala: Partial application Haskell: Lazy evaluation 今回は、この中でPythonのdecoratorを実装するというのをピックアップ。 githubにソースコードがあがってて、スライド中では未解決になってた問題がすでに解決されている。 michaelfairley/method_decorators ここから載せるコードは、githubの方じゃなくてスライド中のコードに一部手を入れたものになってる。ひとつのメソッドに複数のdecoratorを指定でき

    oinume
    oinume 2012/07/21
    rogramming]RubyでPythonみたいなデコレータ。いい
  • PythonとRubyの変数のスコープのまとめ - saito’s blog

    僕が普段使用するPythonRubyの変数のスコープについてまとめてみました。 Python 1. if文やfor文などの制御構造はスコープを作らない。 次のプログラムでは、if文の内側と外側のスコープは共通なので、if文内でaが上書きされてa=1が出力されます。 a = 0 if True: a = 1 print "a = %d" % a # a = 1 2. 関数定義とクラス定義では新しいスコープが作られる。 関数定義やクラス定義では新しいスコープが作られるので、関数定義の内側と外側で同名の変数が存在しても、両者は区別されます。 次のプログラムでは、関数foo内で変数aに代入を行っていますが、この場合fooの内側の変数と外側の変数は別物なので、外側の変数が上書きされることはありません。 a = 0 def foo(): a = 1 print "a = %d" % a # a =

    PythonとRubyの変数のスコープのまとめ - saito’s blog
  • Scripting Languages I: Node.js, Python, PHP, Ruby - Hyperpolyglot

    a side-by-side reference sheet sheet one: version | grammar and execution | variables and expressions | arithmetic and logic | strings | regexes | dates and time | arrays | dictionaries | functions | execution control | exceptions | threads sheet two: streams | asynchronous events | files | file formats | directories | processes and environment | option parsing | libraries and namespaces | objects

  • 1