Power Set by slightair

r=proc{|a,s,m|b=[];a.map{|x|s<<z=[x,*m];r[b,s,z];b<<x};s}
s=[];gets.hex.times{s=r[s,[0],[]]}
$><<s.inspect.tr('[]','{}')

Note that non-ascii characters in the above source code will be escaped (such as \x9f).

download

return top