Rubyのlambda,proc関数の使い方が良く分かりません。 「こういうときに使うと便利」という例があれば教えてください。
先日「Ruby の Proc.new と lambda って何が違うか解る?」と聞かれることがありました。私はてっきり lambda は Proc.new のシンタックスシュガーだと思い込んでいたのですが、ピッケル本を見てみるとどうやら違うようです。リファレンスマニュアルには Proc - Ruby リファレンスマニュアル Proc を生成したメソッドからリターンしてしまった後は Proc からの return, retry は例外 LocalJumpError を発生させます。 とあります。例えば以下のコード。 def foo $a = Proc.new{ puts "proc";return "lambda"} p $a.call end foo p $a.call実行してみると以下のようになります。 % ruby lambda.rb proc proc lambda.rb:2:in
ブロックを使う2つの方法 Rubyのブロックについてもう少し詳細を見てみましょう。Rubyのブロックはメソッド呼び出しに付加できるコードの塊であって,それ自身はオブジェクトではありません(ブロックをオブジェクト化したものがクロージャです)。渡し方も通常の引数とは違います。次のメソッド呼び出しを見てください。 ary.each {|x| puts x} このコードを観察すると,以下のようなことが分かります。 ●aryオブジェクトのeachメソッドが呼び出されている ●通常の引数はない ●ブロックが付加されている メソッドから渡されたブロックを利用する方法は2つあります。一つは「ブロック引数」でブロックを受け取ることを明示的に宣言する方法,もう一つは予約語yieldを用いる方法です。図6[拡大表示]ではブロック引数を用いています。配列に対する繰り返し処理を進めるeachメソッドが定義されていま
id:riocampos2さんの日記から、トラックバックをいただいたので見に行ってみたところ、pythonを使って気象庁から降水量や気温を取得して、はてなグラフに自動でポストしたいそうな。 ちょっと考えてみたところ、rubyで書いた方が楽そうだったので、rubyで書いてみた。 #!/usr/bin/env ruby # -*- coding: utf-8 -*- $KCODE='u' require 'kconv' require 'ostruct' require 'date' require 'rubygems' require 'mechanize' require 'hpricot' require 'hatena/api/graph' HATENA_ID = '****' HATENA_PASSWORD = '****' def get_yesterday_spots_data
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Railsバブルは終わったと思う。良い意味で。 Railsは世の中の技術者に大きな影響を与えたフレームワーク、そして偉大なフレームワークですが、バブルを起こそうと変に煽っている人たちが前から気になっていました。 最近、Railsについて何度も取り上げているのは、手放しに近い状況で「Rails良い」と煽りまくっている人が目に付くから。こういうのは、バブルにつながるし、バブルは最終的に、はじけてしまうものです。Railsバブルは、もうとめられない気もしますが、Rubyはバブルになってほしくない。 だってバブルがはじけて生き残るのはほんの一握りですよ。自分たちが原因で、失敗するならあきらめもつきますが、バブルを起こして運がよければもうけられるみたいに思っている人に散々利用されて失敗するのは、納得がいかないですね。過剰に評価されれば、それだけ失敗する案件も増えてくる。 煽られてそのプロダクトを採用
2007/12/25 「そういえばあのretryの話、どう思う?」、「誰も使ってないから害悪が多いっていう話は説得力ありますよね」、「じゃあなくすか……、うん、なくしといて」、「あ、決まっちゃった(笑)」――。 まつもとゆきひろと、笹田耕一。いま、世界が注目するプログラミング言語「Ruby」の生みの親と、開発コアメンバーの2人は、こともなげにRubyの仕様を記者の目の前で変更してしまった。Rubyの開発はどのように行われ、どこへ向かおうとしているのか。現行のバージョン1.8系から大きく様変わりする次期開発版「Ruby 1.9」のリリースを12月25日に控えた2人に、師走の秋葉原で話を聞いた(文中、敬称略)。 Rubyの仕様は密室で決まる!? 冒頭に紹介した2人の会話は、「retry」というRubyの文法の2種類ある使い方のうち、これまでほとんど使われた形跡がない方を文法仕様から取り除くかど
Ruby は US-ASCII はもちろん、US-ASCII 以外の文字エンコーディングもサポートしています。 文字列の内部表現のエンコーディングは固定されておらず、 プログラマは目的に応じて使用するエンコーディングを選ぶことができます。 同じプロセスの中で異なるエンコーディングの文字列が同時に存在することができます。 全ての String や Regexp などのオブジェクトは自身のエンコーディング情報を保持しています。 これにより各オブジェクト内の文字を適切に取り扱うことができます。 後述のマジックコメントでスクリプトエンコーディングを指定すると、 Ruby スクリプトに非 ASCII 文字を使うことができます。(magic comment) 文字列リテラルや正規表現リテラルだけでなく変数名、メソッド名、クラス名などにも 非 ASCII 文字を使うことができます。ただし文字列リテラル・
Feedback # Christian Louboutin online 2012/12/08 9:14 http://mychristianlouboutinonline.webs.com/ I went over this web site and I conceive you have a lot of superb information, saved to fav (:. # sac longchamp 2012/12/14 20:44 http://www.saclongchampachete.info/category/sac-lo You genuinely know any stuff... # トリーバーチ 2012/12/15 15:24 http://www.torybruchjp.info/category/トリーバーチ-店舗 I guess I will be
自動google検索。 require 'rubygems' require 'mechanize' agent = WWW::Mechanize.new # インスタンス生成 agent.user_agent_alias = 'Mac Safari' # User-Agentの設定 page = agent.get('http://www.google.com/') # ページ取得 search_form = page.forms.with.name('f').first # "f"という名前のフォームを探す search_form.q = 'Hello' # テキストボックス"q"に"Hello"を入力 search_results = agent.submit(search_form) # フォームのsubmitボタンを押す puts search_results.body # 結果
Welcome to WhytheLuckyStiff. You will find many articles about my experiences with running a business as well as varying articles about different topics, recommendations and tips around technology such as smartphones, security and other similar tech news that find myself passionate about. Please enjoy and feel free to send me any feedback whenever you’d like.
Hpricotは Ruby用の HTML パーサです。スキャン部分は C 言語で書かれていて高速に動作します。 HTMLの解析や書き換えに威力を発揮する便利なライブラリです。 rubygemsを使うのが簡単です。 # gem install hpricot すると以下のようにプラットフォームを聞いてきます。Unix系OSであれば 1 を、mswin32 であれば 2 を選びます。 Select which gem to install for your platform (i386-freebsd6) 1. hpricot 0.4 (ruby) 2. hpricot 0.4 (mswin32) 3. Cancel installation コンパイルが始まり、インストールが行われます。 Building native extensions. This could take a while.
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
おそらく、誰もがやる深夜のWebサーフィンは、究極のところ時間の無駄ではないのかもしれない。 それは、Webで夢をみているのにほかならないのだ。(T.B=リー「Webの創成」より) 先日「まるごと Ruby! Vol.1」を読んでいて、xmpfilterとうい試行錯誤ツールがあることを知りました。 xmpfilterは、Rubyソースコード中の任意の行末に「# =>」という計算マーク(コメント)を入れておくことで、そこにその行の式の値を埋め込んで表示してくれるフィルターコマンドです。(irbでは一行ずつ表示される結果が、直接コードの行末に表示できるイメージ) インストールもgemで一発。すぐに使えるうえ、標準でVimとEmacsから使うためのスクリプトまで用意されているスグレモノ。 超絶便利だと思うのですが、そのわりにあまり情報をみかけないので、ここではVimから便利に使うための方法につい
rails.vimをインストールすると、RcontrollerとかRmodelコマンドでRSpecファイルからControllerやModelファイルに切り替えることができるんだけど、その逆ができないので対応させた。仮なのはVimスクリプトをちゃんと書けなくてコピペのごまかしだから。 書きかえるファイルは~/.vim/autoload/rails.vim。一応行数も書いたけどもしかしたらズレてるかもしれないので参考程度に。あと、バージョンは2.0使ってる。 まずは、:Rspec、:Rspeccontroller、:Rspecmodelを呼び出せるようにする。 1777 call s:addfilecmds("integrationtest") 1778 call s:addfilecmds("spec") 1779 call s:addfilecmds("speccontroller"
かくたにさんとid:secondlifeさんからコメントをいただきましたので、調子に乗ってもう少し整理してみました。 以下の感じで書いておくと、なおよいかもしれません。我が家の.vimrcもこうなりました。 "------------------------------------------------------------------------ au FileType ruby :set nowrap tabstop=2 tw=0 sw=2 expandtab au FileType eruby :set nowrap tabstop=2 tw=0 sw=2 expandtab "------------------------------------------------------------------------ " normal ruby & eRuby au BufN
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く