タグ

Rubyとlambdaに関するkiyo_hikoのブックマーク (7)

  • Rubyのmap(&:name)というのはどういう意味? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rubyのmap(&:name)というのはどういう意味? - QA@IT
    kiyo_hiko
    kiyo_hiko 2016/01/27
    Symbol#to_procのが在って、適当なシンボルをレシーバーとして評価するとアリティ1でThe argをレシーバーとし<シンボル>メソッド呼び出すProcに評価されるらし ∴ :fuge.to_proc ≒ Proc.new { |x| x.fuge } ∴map/select系に渡せて楽ちんと
  • Ruby Method to Block (Lambda)

    In Ruby on Rails development, I have been known to use symbol to proc. Recently, I needed to re-use a method as a block. Here’s a contrived example of what I was doing: Group.all.sort {|a,b| a.name <=> b.name} However, I wanted to re-use this sort and ended-up refactoring it to: def group_sort(a, b) a.name <=> b.name end Group.all.sort {|a,b| group_sort(a, b)} Although this allowed me to re-use my

    Ruby Method to Block (Lambda)
    kiyo_hiko
    kiyo_hiko 2015/12/01
    "group_sort = lambda{|a,b| a.name <=> b.name} Group.all.sort &group_sort"
  • do...endと{...}の違い - おもしろwebサービス開発日記

    Rubyのブロックの記述方法にはdo...endと{...}の2種類があります。僕は基的にRubyコーディング規約を参考にしてRubyコードを書いているのでdo...end派なのですが、Railsのnamed_scopeをこんな風に書いたらエラーがでました named_scope :hoge, lambda do |name| { :conditions => ["name = ?", name] } end #=> ArgumentError "tried to create Proc object without a block" でもこうしたらOK。 named_scope :hoge, lambda { |name| { :conditions => ["name = ?", name] } } do...endと{...}って同じかと思っていましたが違うようです。リファレンスを

    do...endと{...}の違い - おもしろwebサービス開発日記
    kiyo_hiko
    kiyo_hiko 2015/10/27
    foobar a, b do...だとdoはfoobarの引数に評価され、foobar a,b {...} だとブレースはbの引数に評価されるという話。気をつけたい。
  • Rubyの ブロック、Proc.new、lambdaの違い - Qiita

    ブロックとProc.newはそもそも別物です。 lambdaに関してはProc.newと同じようですが若干違いがあります。 この違いを理解しておかないと、ハマる可能性があります。 ブロックとProc.new ブロックとは まずブロックとはdo~endまたは{~}の部分で引数のような形で渡すものです。 以下のコードでは{ puts "block" }がそれに相当します。 また、受け取り側で引数を明示的に書かなくても渡す事ができyieldでブロックを評価する事が出来ます。 おそらくlist.each{ |a| a.hoge }などで使った事があると思います。それがブロックです。

    Rubyの ブロック、Proc.new、lambdaの違い - Qiita
    kiyo_hiko
    kiyo_hiko 2015/09/14
    Proc.newはジャンプ文が呼ばれた環境に対して働き、lambdaはlambda内にはたらく話。前者がPerlでのdo {return}、後者がsub {return}->()的な動きかも。普段関数オブジェクト使いたいときはlambdaでいいかも
  • Ruby の関数オブジェクト - Proc とブロックの使い方

    1. 関数オブジェクトとは これまで、Ruby のイテレータから、「ブロック付きメソッド」について見てきた。 Ruby のブロック付きメソッドとイテレータ - yield の様々な使い方 Ruby のイテレータ (2) – Enumerable と Comparable モジュール 今回は、他の言語で「関数オブジェクト」と呼ばれるものを生成するための、Proc クラスについて調べる。 Proc - Rubyリファレンスマニュアル によると、 Proc はブロックをコンテキスト(ローカル変数のスコープやスタックフレーム)とともにオブジェクト化した手続きオブジェクトです。 Ruby の解説を初めて読んだとき、Proc クラスは分かりにくかった。同時に、以下の項目も理解しずらかった。 イテレータ ブロック付きメソッド Proc オブジェクト proc lambda{} &変数 今思えば、これらを

    Ruby の関数オブジェクト - Proc とブロックの使い方
    kiyo_hiko
    kiyo_hiko 2015/09/14
    VBAでNullとNothingとEmpty使い分けてた頃のような気持ちになりつらい。Lisp的なシンプルなのが嬉しいけど何か直交する概念だから分けてるとかなんだろか
  • AWS LambdaをRubyから使ってみる - Qiita

    AWS LambdaはS3やKinesis、DynamoDBのイベントをトリガーにJavaScript/Node.jsで書かれたコードスニペットを実行するというサービスです。 イベントの実行元として上記以外にAPIからの直接実行も可能となっているので今回はAWS SDK for Rubyを利用してこれを試してみます。 なお、AWS Lambdaをサポートしているのはv2だけとなります。 実際のところ、Rubyアプリケーションから実行することはないと思います。 なぜならRubyのアプリを動かすということは恐らくEC2なり何らかのサーバ上で実行してると思われるからです。 でも、例えばクライアントサイドとしてRubyを使うツールを用意して少しだけサーバサイドで処理したいっていうときにEC2とか立てる必要がないのは嬉しいかも知れません。 そんなシチュエーションあるかはわかりませんが。 というわけで

    AWS LambdaをRubyから使ってみる - Qiita
  • 1