QiitaRubyPythonのブロックラムダつらい問題Pythonでショートコードをしようとおもうと、時々こういうことが起きます。'baz'])それぞれの要素に対してupcaseを適用する、ただそれだけのためにitを2回も記述しなければなりません。いうかそもそもlambda:って読みにくいです。Pythonはラムダをあまり使わない言語なのでこの様なコードを書く機会は少ないですが、それでもちょくちょく出番があり、やがてあなたは辟易するはずです。<中略>参考になる例として、ClojureやScalaでは暗黙のパラメータ(プレースホルダ)を導入することでこの問題を上手く解決しています。<例は省略>やりましょうそこでまず、Pythonにプレースホルダの仕組み(のように使えるオブジェクト)をでっちあげてみました。限定的ではありますが、これでPythonでもScalaのような見た目でラムダ式を使えます。other")長いですね。'BAZ']やったぜ。_はパラメータのプレースホルダとして扱われますが、二つ以上現れるとそれぞれ先頭から順に割り当てられます。明示的にパラメータを渡したりとかそういうのは疲れたので無理です。まとめ「演算子やメソッドを呼び出すと、引数をとってそこに該当の演算子やメソッド呼び出しを行うクロージャを返すメソッドを実装している」とかそんな感じです。前に遊びで作ったライブラリからひっぱってきたので若干余計な実装も混ざってますね。タオルケット体操メタプログラミングRubyは、Python使いでも一度は目を通すべき良書。〜関数合成によるCollection処理の実装メソッドチェインを利用した関数合成の実現案的な。(id:hachibeechan)プログラミングのこととか、プログラミング以外のこととかについて書きなぐります。ここに書かれている内容は個人の日記レベルの内容であり、所属する組織の公式見解ではありません。何か御用の方はメールやツイッターのDMとかそういう感じでお願いします。blogに移行していきます。(1)おすすめ技術書オールタイムベストスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。