タグ

2009年9月13日のブックマーク (5件)

  • Python でリストに対する再帰的な関数の適用

    1. リストに対する再帰的な考え方のポイント リストに対して、再帰的な関数を適用する場合、次の二つの視点を頭に入れておく。 先頭要素と、それ以外の残りのリスト。 リストは要素として、リスト、または、値を持つ。 2. フラットなリストに対する再帰的な処理 ネストのないフラットなリストに対して適用する関数を考える場合、 先頭要素 先頭要素以外の残りの要素 に分けて考える。先頭要素に適用した場合の処理と、それ以外の要素を含むリストに対して、再帰的に関数を適用するように記述する。 何もしない関数 一気に考えると脳みその容量をオーバーするので段階的に考える。 (+_+) まず、フラットなリスト L を受けとったら、そのまま返す関数 map1 を考える。 L = [1,2,3,4,5] ただし、そのまま返すと言っても、関数を再帰的に適用する。 実装を考えるとき、 空のリストが渡されたら、空のリストを返

    Python でリストに対する再帰的な関数の適用
  • pythonでクロージャを渡して順列生成 - yattのブログ

    組み合わせを解く問題をやるときに毎回コーディングするのは面倒だ。一般的なコード書こう。 個のシーケンスseqの中から個を選び出す順列を生成する。 # permutation.py def default_term(x): return [x] def default_concat(x, y): return [x] + y def kperm(seq, k, terminal_procedure=default_term, concat_procedure=default_concat): # seqからk個取り出す順列を生成する if k==1: for item in seq: yield terminal_procedure(item) else: for i in xrange(len(seq)): for p in kperm([seq[idx] for idx in xrang

    pythonでクロージャを渡して順列生成 - yattのブログ
  • vimのpython用インデント設定

    pythonでは、インデントはタブではなくスペースが推奨されている。 .pyファイル開いた時のインデントは、以下のように設定すれば良い。 ~/.vim/ftplugin/python.vimを作り、内容を以下のようにする。(windowsの場合は、$HOME/vimfiles/ftplugin/python.vim)setlocal tabstop=4 setlocal softtabstop=4 setlocal shiftwidth=4 setlocal textwidth=80 setlocal smarttab setlocal expandtab setlocal smartindent あと、.vimrcに以下を書いておくと便利。autocmd BufRead *.py set smartindent cinwords=if,elif, else,for,while,try,e

    showyou
    showyou 2009/09/13
  • 生粋のWindowsユーザー向け、初めてのVim設定 on Mac OS X 10.5

    vimはきちんと設定しないとただのメモ帳きちんと設定すると地上最強クラスのエディタになるでもvimの設定って意味がわからない、難しすぎる。ということで適当に調べて適当にやってみました設定は.vimrcファイルと、.vimディレクトリで行う.vimrcは全体設定、.vimディレクトリは主にファイルタイプごとの設定:help runtimepathとか:help ftpluginするといろいろ教えてくれる 「Windowsには秀丸があるけど、Linuxには秀丸がないし、Linuxにはろくなテキストエディタがないよね」 ・・・あるWindowsユーザのぼやき 「Linuxにはvimがあるけど、WindowsだとCygwin入れないといけないから面倒だよね。GUI付きのエディタなんてろくなのがないし」 ・・・あるLinuxユーザのぼやき 「TextMate + vim + emacs = pWnA

    生粋のWindowsユーザー向け、初めてのVim設定 on Mac OS X 10.5
  • ChromeをVim風にキーボード操作する拡張

    ※最新版をGoogle Codeにアップしました。今後はこちらで更新する予定です。 http://code.google.com/p/vimlike-smooziee/ ChromeVim風に動かしたい Firefoxのアドオンには、VimperatorというVim風にブラウザを操作してしまおうという大変マニアックなアドオンがあります。これに慣れるとVimperatorの入ってないFirefoxは使えなくなるといわれるほど、素晴らしく便利です。 ただ、Firefoxはどんどん起動が遅くなってしまうので、あくまでFirefoxがメインながらも、キビキビ動いてくれるGoogle Chromeを使用する機会も増えてきていました。 そうなるとやはり、ChromeでもVimperatorを使いたい。それが無理でもせめてVimのようにjキー、kキーでスクロールするだけでも全く使い勝手が違うだろうと思