同じ年月は同じグループとしてカウントして数を求める例でのコード比較を Squeak Smalltalk でも

各言語共通ロジック条件


  • 同じ年月は同じグループとしてカウントして数を求める
  • 最新の年月を降順でソートする
  • 無理やり1行にまとめず、ある程度の可読性は保つようにする
  • 宣言部分、実装メソッドの定義部分などはカウントせず除外する
  • //---(logic)----で囲んだ箇所を比較対象箇所とする
  • 下記「変更前」データーから「変更後」データになるよう標準出力を行う

fukaoi.org

via @umejava


ロジックを明示的に記述することについて縛りがなければ Squeak Smalltalk だとこんなかんじ。


| yearMonths |
yearMonths := #(
    '2009-11' '2009-01'
    '2010-01' '2010-12'
    '2010-01' '2010-04'
    '2010-01' '2010-12'
    '2010-12' '2010-04').

"//---(logic)----"
yearMonths asBag sortedElements reversed
"//---(logic)----"
{'2010-12'->3 . '2010-04'->2 . '2010-01'->3 . '2009-11'->1 . '2009-01'->1}