2014-03-08-01-ファンクタの悩み - 4
>> Site top >> weblog >> 月別アーカイブ >> 2014年03月のlog >> 2014-03-08-01-ファンクタの悩み - 4
最終更新日付:2014/03/08 01:00:00
ファンクタの悩み - 4
2014 年 03 月 08 日
前回からの続き。
前回までで、ひとまずパフォーマンス面の心配は杞憂だったと考えることにした。そして、なぜファンクタの値渡し(を模倣するためのコピー)が必要なのかについても確認した。では、これからどうするのか、という話。
実際問題として、ここまでの仕組みを全て CL-STL に組み込んでも、普通に Common Lisp + CL-STL で作業をしている限り、わざわざファンクタを使うことは(ほとんど)ないだろう。なぜなら、はっきりと面倒だからだ。関数や lambda 式を渡す方が楽に決まっている。そして、それは可能だしパフォーマンス的にもまぁ許容範囲だろうと思う。
そして、ファンクタを渡すべきコードの、まさにその場所にインラインで lambda 式を書く方が楽ならば、binder1st のようなアダプタさえ使わないだろう(一番使う頻度が高いのは多分 back-inserter だな)。自分でもそう思うし、そうするだろう。では、どういう局面でファンクタを defclass することになるだろうか。
答えは、「STL 本来の挙動に合わせたい場合」だろう。果たしてそんな局面があるのかと言われてしまうとあまり良い返事はできないが、例えば C++ で書いてあったものを Common Lisp 上に持ってくるとか、あるいはその逆とか。つまり、全ては互換性のために存在する、ということだ。そしてそれは滅多に使いそうもない。やれやれ。
そんなふうにボヤきながら、それでも自分はすでに決定事項かのように algorithm 群のファンクタコピー対応を進めている。まぁそれで良いのだろう。残る問題は polynominal-function だけ。あれどうしようかな。
コメント
このページのタグ
Page tag : STLとその移植
Copyright(C) 2005-2021 project-enigma.
Generated by CL-PREFAB.