タグ

procに関するishideoのブックマーク (9)

  • Proc#curry について - Qiita

    複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること var func = function(x, y) { return x * y; } var curried = function(x) { return function(y) { return func(x, y); } } curried(2)(3); // 6

    Proc#curry について - Qiita
  • Ruby の yield って結局なんなの? - YNote

    yield って、いまいち分かりにくいですよね。。 わからない⇒調べる⇒忘れる⇒調べる⇒忘れる⇒… のエンドレスループから抜け出すために、自分なりにまとめることにしました。 ブロック いきなり yield じゃないやん!という感じですが、我慢して見てみてください。 …じ・つ・は、Ruby のメソッドはすべて「ブロック」を引数にすることができます。 最近知りました(;ω;)。 def hogehoge( x ) return x + 2 end p hogehoge( 3 ) p hogehoge( 5 ){ p "foo" } ブロックってのは、{ p "foo" } みたいに "{" と "}" に囲まれたやつね。"do" 〜 "end" でもいいみたいだけど。 これを実行すると、 5 7 となります。{ p "foo" } はまるっきりシカトです。 (・∀・) …が、以下のようにすると

  • Ruby yieldでのコードの書き方について

    yieldやProcについて学習をしているのですが、yieldの理解に苦しんでいます。 yieldはブロックを呼び出す、Procはブロックのオブジェクト化というのは理解しました。 ここでブロックがでてきたりして、yieldの事がよくわからなくなってきました。 どなたか、yieldを使ったコードの書き方の理由について詳しく教えてください。 宜しくお願いします。

    Ruby yieldでのコードの書き方について
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • ループと再帰

    1. 再帰的な考え方は難しい どこで見たのか失念してしまったが (+_+) 、以下のような主旨を読んだ覚えがある。 構造化プログラミングでは、「順次、反復、分岐」が導入された。この内、「分岐」は「多態」に置き換えることができ、「反復」は再帰により表現することができる。「順次、反復、分岐」というプログラムの基構造は、別の表現へと解体されていく。 当時、オブジェクト指向にベッタリだった。そのため、「多態」バンザイと思ったが、「再帰」に関しては苦手だった。最近、関数型の言語を触るようになった。「順次」は、モナドで置きかけることができるのかな? プログラミングのを読んでいると、 「再帰」 の考え方は重要だと述べられている。プログラミングの勉強をはじめたとき、一番最初につまずいたのが再帰だった。自分は、文系でフィーリング重視の脳みそ。再帰ほど、想像力に負荷をかけるものはない。 (@_@;) 定義

  • 無名関数を生成する - Ruby Tips!

    Rubyにおける無名関数の正体はProcオブジェクトである。Procオブジェクトの生成には、kernel#.lambda、Kernel#.procまたはProc.newを使う。ProcオブジェクトはProc#callで呼び出して使うことができる。以下は2つの引数を取り、それらを加算する無名関数を生成して、計算を行う例である。 func = lambda{|a, b| a + b } p func #=> #<Proc:0x0000000180d8a0@/tmp/vCWIAge/49:1 (lambda)> p func.call(1, 2) #=> 3 func = proc{|a, b| a + b } p func #=> #<Proc:0x00000001a72898@/tmp/vCWIAge/51:1> p func.call(1, 2) #=> 3 func = Proc.new

    無名関数を生成する - Ruby Tips!
  • Procを制する者がRubyを制す(嘘)

    RubyのProcの説明は巷に溢れているから今更感があるけどここ数回Procを使ったネタを書いていたらProcがかわいくなっちゃってもっとみんなにもProcのこと知ってもらいたいという欲求が生まれてきたからProcについての基的なことを僕なりのやり方でここに書くよ。長いよ。 Rubyの関数(メソッド) Rubyにおいて関数(メソッド)はファーストクラス(オブジェクト)ではありません。つまり文字列や数字や配列などの他のオブジェクトとは異なって、Rubyではそれを直接変数に代入したり、他の関数に渡したりすることはできません。 def square(n) n * n end sq = square # squareメソッドを変数sqに代入してみる # ~> -:1:in `square': wrong number of arguments (0 for 1) (ArgumentError)

    Procを制する者がRubyを制す(嘘)
  • 標準入力で渡された数値群をFixnumとして受け取る方法~mapとprocの入門を添えて~ - Qiita

    この記事のサマリ ・標準入力で渡されたスペース区切りの整数群は、「inputs = gets.split.map(&:to_i)」とすれば、各要素に対してto_iで、数値化された状態で受け取ることができる ・もし、上記「&:to_i」の部分が説明できない人は、この記事を読むとわかるようになるはずです。 背景 paizaという、プログラムを書く技術を計測(課題がいくつかあって、それに対してコードを提出→採点という流れ)して、それを転職に利用できるという、プログラマーと企業とのマッチングを行うサイトがあり、情報収集や勉強がてら利用させていただいているのですが。。。 paizaの環境の都合上(オンラインでリアルタイム採点をするため)、標準入力で受け取ったテストデータが、期待通り動作するか?というのが、問題を解く大前提になっているます。そのため、必ず「標準入力を適切に受け取る」というコードが必要に

    標準入力で渡された数値群をFixnumとして受け取る方法~mapとprocの入門を添えて~ - Qiita
  • Ruby block/proc/lambdaの使いどころ - Qiita

    (2015/10/13追記) 今なら、他言語には無名関数やcallback関数というものがありますねとか、イベント駆動の世界を覗いてから戻ってくるとより腑に落ちるかもしれませんとか、もう少し全体観の中で説明する気がしますが、当時は記事の様な理解が役に立ったことは事実なので、引き続き公開を続けます。 (2013/11/29追記) block_given? について Twitter上で「Kernel.#block_given?についての解説があってもよさそう」と 指摘を頂きましたので、文下部に追記しました。 概要 Ruby on Rails Tutorialのエッセンスを自分なりに整理してみる4 Railsを触る際知っていると便利なRubyの基礎 [ブロックとかシンボルとか] http://qiita.com/kidachi_/items/46a6e49b6306655ccd64 の続き。

    Ruby block/proc/lambdaの使いどころ - Qiita
  • 1