SlideShare uma empresa Scribd logo
1 de 14
無名関数の
すすめ
柿崎 昭一
自己紹介
・14卒エンジニア(もうすぐ3年目)
・業務ではRuby on Railsを使ってメディア開発をしてます
・Androidアプリ開発を趣味でやってます
・最近JavaScriptにはまりつつあります
Qiita http://qiita.com/Kaki_Shoichi
FB https://www.facebook.com/profile.php?id=100005271217098
そもそも無名関数とは?
・無名関数(Annonimous Functions)とは、 名前付けされずに定義された関数。
・Rubyだと、無名関数はブロックで表現される。do endでも表現される。
メリット
・一度しか使わない関数の名前を付けなくて済む。
・メソッドの引数などに直接渡せる。
・動的にメソッドの処理を変えられる。
無名関数の使いドコロ
例::よく見かけるサンドイッチメソッド
無名関数を使ってリファクタ
・重複部分を抽出する
・ユニークな処理を呼び出し側で作成する
・ユニークな処理をyieldで呼び出す
重複部分を抽出する
例::よく見かけるサンドイッチメソッド
ユニークな処理を呼び出し側で作成する
ユニークな処理をyieldで展開する
無名関数はまだまだ奥が深いので
色々調べてみると面白いです!
ご清聴有難う御座いました

Mais conteúdo relacionado

Mais procurados

Ruby programmer silverの取得に向けて
Ruby programmer silverの取得に向けてRuby programmer silverの取得に向けて
Ruby programmer silverの取得に向けて善弘 植木
 
Java8 code kata (Japanese)
Java8 code kata (Japanese)Java8 code kata (Japanese)
Java8 code kata (Japanese)Hiroaki Kono
 
Roslynで体験してみるC#スクリプト #cs_fukuoka
Roslynで体験してみるC#スクリプト #cs_fukuokaRoslynで体験してみるC#スクリプト #cs_fukuoka
Roslynで体験してみるC#スクリプト #cs_fukuokaYuta Matsumura
 
魔法を使わないプログラミング(web公開版)
魔法を使わないプログラミング(web公開版)魔法を使わないプログラミング(web公開版)
魔法を使わないプログラミング(web公開版)hajikami
 
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)orange clover
 
Alluren of prototype-based OOP
Alluren of prototype-based OOPAlluren of prototype-based OOP
Alluren of prototype-based OOPazuma satoshi
 
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由Kohei Taniguchi
 
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipmIT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm鉄次 尾形
 
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
Kids,Ruby,Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜Kids,Ruby,Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜宏治 高尾
 
DjangoのORMことはじめ
DjangoのORMことはじめDjangoのORMことはじめ
DjangoのORMことはじめko ty
 
普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話ko ty
 
Electronからはじめるnodejs
ElectronからはじめるnodejsElectronからはじめるnodejs
ElectronからはじめるnodejsHirata Tomoko
 
More Effective Feedback: Dashbozu
More Effective Feedback: DashbozuMore Effective Feedback: Dashbozu
More Effective Feedback: Dashbozumallowlabs
 
これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境Ryo Higashigawa
 
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLRubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLUchio Kondo
 
RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方Satomi Tsujita
 

Mais procurados (20)

Ruby programmer silverの取得に向けて
Ruby programmer silverの取得に向けてRuby programmer silverの取得に向けて
Ruby programmer silverの取得に向けて
 
Java8 code kata (Japanese)
Java8 code kata (Japanese)Java8 code kata (Japanese)
Java8 code kata (Japanese)
 
No More Noprototype Function
No More Noprototype FunctionNo More Noprototype Function
No More Noprototype Function
 
簡単!Groovy入門
簡単!Groovy入門簡単!Groovy入門
簡単!Groovy入門
 
Roslynで体験してみるC#スクリプト #cs_fukuoka
Roslynで体験してみるC#スクリプト #cs_fukuokaRoslynで体験してみるC#スクリプト #cs_fukuoka
Roslynで体験してみるC#スクリプト #cs_fukuoka
 
魔法を使わないプログラミング(web公開版)
魔法を使わないプログラミング(web公開版)魔法を使わないプログラミング(web公開版)
魔法を使わないプログラミング(web公開版)
 
「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)「プログラミングGroovy」入門(公開用)
「プログラミングGroovy」入門(公開用)
 
Alluren of prototype-based OOP
Alluren of prototype-based OOPAlluren of prototype-based OOP
Alluren of prototype-based OOP
 
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
 
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipmIT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
 
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
Kids,Ruby,Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜Kids,Ruby,Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
 
DjangoのORMことはじめ
DjangoのORMことはじめDjangoのORMことはじめ
DjangoのORMことはじめ
 
普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話
 
Electronからはじめるnodejs
ElectronからはじめるnodejsElectronからはじめるnodejs
Electronからはじめるnodejs
 
Ruby with My Life
Ruby with My LifeRuby with My Life
Ruby with My Life
 
More Effective Feedback: Dashbozu
More Effective Feedback: DashbozuMore Effective Feedback: Dashbozu
More Effective Feedback: Dashbozu
 
TypeScript 独習会
TypeScript 独習会TypeScript 独習会
TypeScript 独習会
 
これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境
 
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LLRubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
 
RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方
 

Destaque

Linuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみたLinuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみたbasicinc_dev
 
Mini magickでの画像合成
Mini magickでの画像合成Mini magickでの画像合成
Mini magickでの画像合成Yoshiki Kobayashi
 
Ruby under the hood
Ruby   under the hoodRuby   under the hood
Ruby under the hoodbasicinc_dev
 
マーケティング視点でのデザイン
マーケティング視点でのデザインマーケティング視点でのデザイン
マーケティング視点でのデザインbasicinc_dev
 
良いクラス設計とは?
良いクラス設計とは?良いクラス設計とは?
良いクラス設計とは?basicinc_dev
 
Have fun-with-ruby
Have fun-with-rubyHave fun-with-ruby
Have fun-with-rubybasicinc_dev
 
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜbasicinc_dev
 
インフラ(Aws)覚えたいそんなあなたへ!
インフラ(Aws)覚えたいそんなあなたへ!インフラ(Aws)覚えたいそんなあなたへ!
インフラ(Aws)覚えたいそんなあなたへ!basicinc_dev
 
悪いRegexと良いregexと最良regex
悪いRegexと良いregexと最良regex悪いRegexと良いregexと最良regex
悪いRegexと良いregexと最良regexbasicinc_dev
 
Safe stringにgsubを実行できるように対応
Safe stringにgsubを実行できるように対応Safe stringにgsubを実行できるように対応
Safe stringにgsubを実行できるように対応basicinc_dev
 
川又康平 20160428
川又康平 20160428川又康平 20160428
川又康平 20160428basicinc_dev
 
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜basicinc_dev
 
構造化データマークアップでステキな検索結果を手に入れる
構造化データマークアップでステキな検索結果を手に入れる構造化データマークアップでステキな検索結果を手に入れる
構造化データマークアップでステキな検索結果を手に入れるbasicinc_dev
 
画像処理アルゴリズム入門とcanvas
画像処理アルゴリズム入門とcanvas画像処理アルゴリズム入門とcanvas
画像処理アルゴリズム入門とcanvasbasicinc_dev
 
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~basicinc_dev
 
エンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たものエンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たものbasicinc_dev
 
メール送信におけるスパム認定のリスクと対策
メール送信におけるスパム認定のリスクと対策メール送信におけるスパム認定のリスクと対策
メール送信におけるスパム認定のリスクと対策basicinc_dev
 

Destaque (20)

Linuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみたLinuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみた
 
Mini magickでの画像合成
Mini magickでの画像合成Mini magickでの画像合成
Mini magickでの画像合成
 
Ruby under the hood
Ruby   under the hoodRuby   under the hood
Ruby under the hood
 
マーケティング視点でのデザイン
マーケティング視点でのデザインマーケティング視点でのデザイン
マーケティング視点でのデザイン
 
良いクラス設計とは?
良いクラス設計とは?良いクラス設計とは?
良いクラス設計とは?
 
Have fun-with-ruby
Have fun-with-rubyHave fun-with-ruby
Have fun-with-ruby
 
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
 
インフラ(Aws)覚えたいそんなあなたへ!
インフラ(Aws)覚えたいそんなあなたへ!インフラ(Aws)覚えたいそんなあなたへ!
インフラ(Aws)覚えたいそんなあなたへ!
 
悪いRegexと良いregexと最良regex
悪いRegexと良いregexと最良regex悪いRegexと良いregexと最良regex
悪いRegexと良いregexと最良regex
 
Zaru 20160428
Zaru 20160428Zaru 20160428
Zaru 20160428
 
turbolinks攻略
turbolinks攻略turbolinks攻略
turbolinks攻略
 
Safe stringにgsubを実行できるように対応
Safe stringにgsubを実行できるように対応Safe stringにgsubを実行できるように対応
Safe stringにgsubを実行できるように対応
 
川又康平 20160428
川又康平 20160428川又康平 20160428
川又康平 20160428
 
Yamakado 20160428
Yamakado 20160428Yamakado 20160428
Yamakado 20160428
 
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
 
構造化データマークアップでステキな検索結果を手に入れる
構造化データマークアップでステキな検索結果を手に入れる構造化データマークアップでステキな検索結果を手に入れる
構造化データマークアップでステキな検索結果を手に入れる
 
画像処理アルゴリズム入門とcanvas
画像処理アルゴリズム入門とcanvas画像処理アルゴリズム入門とcanvas
画像処理アルゴリズム入門とcanvas
 
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~
 
エンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たものエンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たもの
 
メール送信におけるスパム認定のリスクと対策
メール送信におけるスパム認定のリスクと対策メール送信におけるスパム認定のリスクと対策
メール送信におけるスパム認定のリスクと対策