シュワルツ変換 |
辞書:電算用語の基礎知識 プログラミング用語編 (PTPROGY) |
読み:シュワルツへんかん |
外語:Schwartzian Transform |
品詞:名詞 |
リストを、各要素に一定の演算を施したもので操作したいが、最終的に必要なのが演算の結果ではなく、本来の要素である場合に用いる手法。
|
特徴 |
一定の演算を施した要素と元々の要素を組にしたリストを作成し、演算された要素を用いてリスト全体に対して操作を行ない、最後に組の中から元々の要素だけを取り出すことで必要な結果を得る。
とくに、リストの整列の際、要素の比較に用いる条件が複雑な場合に、あらかじめ各要素を比較するための値を算出しておいて、何度も計算するのを避けるために用いることが多い。
名前は、Just another Perl hacker,であるランダル・シュワルツ(Randal L. Schwartz)に由来する。
記述は簡潔になるが、一時作業用のメモリー消費量が余分に必要になる。
手順 |
実例 |
文字列のリストを、大文字/小文字の違いを無視して整列する例。
Perlの場合、次のようになる。
@sorted = map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [ $_, lc($_) ] } @unsorted;
Rubyの場合、次のようになる。
sorted = unsorted.collect { |e| [ e, e.downcase ] }. sort { |a, b| a[1] <=> b[1] }. collect {|e| e[0] }
リンク |
通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |