Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Pythonのイテレータ(iterator)とジェネレータ(generator)についてまとめてみます。 (追記2018.12.25: Python3の文法に全面的に置き換えました) イテレータ: 要素を反復して取り出すことのできるインタフェース ジェネレータ: イテレータの一種であり、1要素を取り出そうとする度に処理を行い、要素をジェネレートするタイプのもの。Pythonではyield文を使った実装を指すことが多いと思われる Python組み込みのコレクション(list, tuple, set, dictなど)はどれもイテレーション可能ですが、組み込みのコレクションを使った繰り返し処理ではあらかじめコレクションに値を入れておく必要があるため、以下のようなケースではイテレータやジェネレータを自分で実装したいというケースがあると思います。 無限に繰り返すイテレーション 要素すべてをあらかじめ
今日は七夕!ってことで Riot.js の練習も兼ねて簡単な短冊ジェネレータをつくってみました。 ソースコードはここら辺。 ちなみに元サイトはここを参照しました。 Riot.js 自体そんなに難しくないのでたたき台は 2時間もかからないぐらいでサクッとつくる事が出来ましたね。 まあ結局 permalink とか複数の短冊表示を実装してたら結局5時間ぐらい作業していたんですが…。 強いて言えば HTML と CSS と JavaScript を .tag ファイルにまとめて書くのが Vim 的にちょっとつらい感じですね。 シンタックスとかどないせーっちゅうねん。 context_filetype.vim を使うにしても判定するのが難しいしなあ…。 まあ、そのあたりは追々考えてみます。 絶対にバグがあると思うんで不具合があったら教えてもらえると助かります。 元記事
Koaを勉強するに当たり、そもそもなんでジェネレータで非同期処理が同期処理みたいにかけるのかをきちんと理解していないと、始まらないような気がしたので、勉強がてら書いてみようかなと思います。 駄文が多いので、時間がないときは「ジェネレータを使った非同期処理」から読んでしまうといいと思います。 非同期処理の必要性 Node.jsとノンブロッキングI/O Node.jsでWebアプリを作ろうとするとき、やはり意識すべきはそのアーキテクチャだと思います。 WEBサーバとしてのNode.jsは、シングルプロセスで動作し、リクエストを順番に処理します。それゆえ、リクエストごとにプロセスを作るApacheに比べるとメモリ消費量が少ないことと、プロセス作成のコストを節約できるという利点があります。 一方で、シングルプロセスであるが故に、一つの時間のかかる処理が発生すると、後ろのリクエストが使えてしまい、パ
(2015/10/21追記) 記事を書いてから半年経ちましたが、最近はRxの良さを理解したり、ES7のasync/awaitがbabelによって実用的になりつつあったり等、またもやベストプラクティスとはなんだったのか状態です。とはいえ、いまのところPromiseは非同期処理の土台であり続けそうですし、Generatorもasync/awaitへの足がかりとして知っておくことのメリットは大きいかと思いますので、引き続き公開させたままとさせて頂きます。 (追記ここまで) 数ある非同期処理のプラクティスを試してみて、だいたいこれが良いんじゃないかというパターンが固まったので書きます。効用はコールバック地獄からの脱出と結局非同期どれが良いの感の払拭。ES6寄りです。 前提知識 JavaScript Promiseの本 http://azu.github.io/promises-book/ ジェネレ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く