タグ

yieldに関するfjwr38のブックマーク (4)

  • 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" } はまるっきりシカトです。 (・∀・) …が、以下のようにすると

  • Pythonのジェネレータを使って素数を求める — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー キミならどう書く 2.0 - ROUND 1 - Python 2.3から(だったっけな?)導入された「ジェネレータ関数」を使って素数を求めてみましょう。 >>> def primegen(x=2): # 素数を返すジェネレータ関数を定義 ... while True: ... if not [i for i in range(2,x) if x % i == 0]: ... yield x # 割りきれる数が見つからなかったらyield ... x += 1 ... >>> i = primegen() # イテレータオブジェクトを得る >>> while True: ... pri

  • Python - generatorで素数生成

    Pythonのgeneratorは無限ストリームを実現するのに便利。 たとえば、 SICP 3.5.2 節にでてくる素数の無限ストリーム Scheme: (define (integers-starting-from n) (cons-stream n (intege...

    fjwr38
    fjwr38 2012/05/15
    generatorを使って素数を作る
  • Python のジェネレータ (1) - 動作を試す

    1. イテレータとはコンテナの要素を走査するためのオブジェクト これまでに Python の リスト内包表記、イテレータ について調べた。 次は、「ジェネーレータ」。 Python のジェネレータを理解するには、イテレータの理解が不可欠。ジェネレータについて調べる前に、イテレータの復習から行う。 a. イテレータの役割 Python のドキュメント「9. クラス」 における「9.8 イテレータ」の説明を確認すると、 イテレータの使用は Python 全体に普及していて、統一性をもたらしています。背後では、for 文は コンテナオブジェクトの iter() を呼び出しています。… イテレータは、Python において特別扱いされており、for 文と密接な関わりを持っている。 … この関数は next() メソッドの定義されたイテレータオブジェクトを返します。 next() メソッドは一度コン

    Python のジェネレータ (1) - 動作を試す
  • 1