作者: 王虎
日時: 2004/7/28(20:56)
Bruce. です。

2ちゃんねるのPerlスレで見かけたのですが、配列(リスト)の積と差を
求めるのに以下のような手法が挙げられていました。


  @hoge1=( "1", "1", "1", "3", "4", "5", "5" ); 
  @hoge2=( "1", "2", "4", "5" ); 
  print grep{!exists ${{map{($_ => 1)}@hoge1}}{$_}}@hoge2; 

  -> 2

  print grep{${{map{($_ => 1)}@hoge1}}{$_}}@hoge2; 

  -> 145

最初何やってるのか見当もつかなかったのですが、

  print ${ {(1=>1, 3=>1, 5=>1)} }{5};

としてみるとキー5の値である1が出力されるのですね。

むーん。まるでLispのlamdaを駆使したプログラムを見るようです。

参考までにRubyでは組み込みの演算子 & と - でできます。- は
配列の関係を逆にしないといけませんが。

ではPythonではどうなるのだろう? と考えてみたのですが、その答えは
TSPythonで。

-- 
木村浩一
  I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
  mail kbk@...
  web  www.kt.rim.or.jp/~kbk/