トップページ > プログラム > 2014年09月11日 > oL03u+Kk

書き込み順位&時間帯一覧

45 位/221 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000100100002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
プログラミングのお題スレ Part4
【Python】スクリプト バトルロワイヤル46【pl,rb,php,js】

書き込みレス一覧

プログラミングのお題スレ Part4
896 :デフォルトの名無しさん[sage]:2014/09/11(木) 16:45:35.36 ID:oL03u+Kk
>>890
Squeak Smalltalk で。

| primeFactors sumAllocOfCages |

primeFactors := [:n | (Integer primesUpTo: n+1) select: [:m | n isDivisibleBy: m]].

sumAllocOfCages := [:n |
 (primeFactors value: n) inject: 0 into: [:sum :d |
  ((d to: n by: d) inject: 1 into: [:k :rest | k * (rest take: d)]) / (n/d) factorial + sum
 ]
].

sumAllocOfCages value: 4. "=> 3 "
sumAllocOfCages value: 6. "=> 25 "
【Python】スクリプト バトルロワイヤル46【pl,rb,php,js】
408 :デフォルトの名無しさん[sage]:2014/09/11(木) 19:22:21.66 ID:oL03u+Kk
動的型付けか、型無しか、とかとはぜんぜん関係なく、
Smalltalk でメソッドが無いときの挙動を、
なんかおもしろそうなので >>401 風味に書いてみました。
(いろいろ嘘はある。あくまで雰囲気なのであしからず。)
ググりながら書いたので、Python使いさん方には添削をよろしくお願いします。

class Obj(dict):
 def __init__(self, sup = None):
  self.sup = sup
  if sup == None:
   self['missing'] = lambda key: print(key + ' is missing (default action)')
 def __missing__(self, key):
  sup = self.sup
  while not sup == None and not key in sup: sup = sup.sup
  return sup[key] if not sup == None and key in sup else lambda: self['missing'](key)

obj = Obj()
sup = Obj(obj)
sub = Obj(sup)
sup['foo'] = lambda: print('foo on sup')
sub['foo']()
 #=> foo on sup
sub['bar']()
 #=> bar is missing (default action)
sup['missing'] = lambda key: print(key + ' is intercepted within sup')
sub['bar']()
 #=> bar is intercepted within sup


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。