2005-08-01から1ヶ月間の記事一覧

Python.use(better) 《記事一覧》 if と別れる50の方法 《11》三項演算子の隘路 《著》後藤いるか・森こねこ《監修》小泉ひよ子とタマゴ倶楽部第0版♪1988/03/30 ● 第1版♪2000/05/23

《こちらに移動中です》 この記事の内容が理解できたら、なぜ記事のサブタイトルが「関係演算子」ではなく「三項演算子」になっているのかを、説明できるようになります。

《こちらに移動中です》 Python.use(better) 《記事一覧》 for と別れる50の方法 《1》for 文の隘路 《著》後藤いるか・森こねこ《監修》小泉ひよ子とタマゴ倶楽部第0版♪1988/03/30 ● 第1版♪2000/05/23 ● 更新♪2009/01/16

Python.use(better) 《記事一覧》 ベンチマーク Fibonacci 《著》後藤いるか・森こねこ《監修》小泉ひよ子とタマゴ倶楽部第0版♪1988/03/30 ● 第1版♪2000/05/23 ● 更新♪2008/10/28 関連記事 Smalltalk 3分クッキング《問2》フィボナッチ/トリボナッチ/テトラ…

Python.use(better) 《記事一覧》 ifと別れる50の方法 《13》N人ジャンケン問題 《著》後藤いるか・森こねこ《監修》小泉ひよ子とタマゴ倶楽部第0版♪1989/05/30 ● 第1版♪2005/03/12 ● 更新♪2009/01/14

受講者への課題

《余録》セミナー教材の中には「反面教師」として引用しているものも少なくありません。たとえば… 参考文献 なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング作者: 小森裕介,アクロクエストテクノロジー株式会社…

《関連記事》

《こちらに移動中です》 Smalltalk: a la carte(23)ifと別れる50の方法《7》switchは百害あって一理なし, 1988. 真樹育未 Oh 脳《005》switch の隘路と、さらなら後藤 goto さん - 続・ひよ子のきもち Oh 脳《57》続・switch 文の隘路と、さらなら後藤 got…

出力結果

テストケースを実行すると、次のような結果を出力します。 >>>

テストケース

動作を確認するために、次のようなテストケースを用意しました。 ## ---------- test case ----------

余録

セミナー受講者の中にも(コンサルティングの現場でも)同様のパラダイムシフトに困惑する場面に遭遇します。この傾向が、同様の著書に起因するのか定かではありません。ただ「そこに書かれてあることを鵜呑みにせず」批判的な目で見る姿勢も必要です。それ…

《こちらに移動中です》 Python.use(better) 《記事一覧》 ifと別れる50の方法 《31》switchは百害あって一理なし 《著》後藤いるか・森こねこ《監修》小泉ひよ子とタマゴ倶楽部第1版♪2005/03/12 ● 更新♪2009/01/14

受講者への課題

《余録》セミナー教材の中には「反面教師」として引用しているものも少なくありません。たとえば… 参考文献 なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング作者: 小森裕介,アクロクエストテクノロジー株式会社…

《関連記事》

Smalltalk: a la carte(23)ifと別れる50の方法《7》switchは百害あって一理なし, 1988. 真樹育未 Oh 脳《005》switch の隘路と、さらなら後藤 goto さん - 続・ひよ子のきもち Oh 脳《57》続・switch 文の隘路と、さらなら後藤 goto さん - 続・ひよ子のき…

出力結果

テストケースを実行すると、次のような結果を出力します。 >>> S1 D1 C1 H1 S2 D2 C2 H2 S3 D3 C3 H3 S4 D4 C4 H4 S5 D5 C5 H5 S6 D6 C6 H6 S7 D7 C7 H7 S8 D8 C8 H8 S9 D9 C9 H9 SO DO CO HO SJ DJ CJ HJ SQ DQ CQ HQ SK DK CK HK JK

テストケース

動作を確認するために、次のようなテストケースを用意しました。 ## ---------- test case ---------- cards = [] for number in range(1, 13+1): cards.append(Card(Card.SPADE , number)) cards.append(Card(Card.DIAMOND, number)) cards.append(Card(Car…

余録

セミナー受講者の中にも(コンサルティングの現場でも)同様のパラダイムシフトに困惑する場面に遭遇します。この傾向が、同様の著書に起因するのか定かではありません。ただ「そこに書かれてあることを鵜呑みにせず」批判的な目で見る姿勢も必要です。それ…

《こちらに移動中です》 Python.use(better) 《記事一覧》 ifと別れる50の方法 《7》switchは百害あって一理なし 《著》後藤いるか・森こねこ《監修》小泉ひよ子とタマゴ倶楽部第0版♪1988/03/30 ● 第1版♪2000/05/23 ● 更新♪2008/11/22

クラス:Parser

まず、組み込み関数 filter のヘルプ情報を確認します。 class Parser: def scan(self, e): s = e if e in "+-*/": s = Op(e) # 演算子: operator else: s = Value(e) # 被演算子(引数): operand) return s 逆ポーランド記法で書かれた式(文字列)を調べ…

《関連記事》

Smalltalk: a la carte(23)ifと別れる50の方法《7》switchは百害あって一理なし, 1988. 真樹育未 《Note》タイトルを「一利」ではなく「一理」としてあるのは意図的なものです。その謎解きは本文で ...φ(^.^)

ポリモフィズムを利用すると

前述したように、if と別れる「始め一歩」がポリモフィズムの導入を検討してみることです。それが「末の千里」へと誘います。 expr = "3 4 +" expr = "3 4 + 2 *" parser = Parser() cal = Polish() for e in expr.split(" "): e = parser.scan(e) e.evaluat…

switch 擬で記述すると

expr = "3 4 +" expr = "3 4 + 2 *" parser = Parser() cal = Polish() for e in expr.split(" "): e = parser.scan(e) e.switch({ Value: cal.value, Op : cal.op, }) print cal.evaluate() # -------------------------- class Polish: def __init__(self)…

《こちらに移動中です》 Python.use(better, for=C#) 《記事一覧》 ifと別れる50の方法 《6》switchは百害あって一理なし 《著》後藤いるか・森こねこ《監修》小泉ひよ子とタマゴ倶楽部第0版♪1988/03/30 ● 第1版♪2000/05/23 ● 更新♪2008/11/22

任意の条件式

switch 文は、ハードコーディングの典型のひとつ *1 ですが、今でも old-timer には根強い人気があるのも事実です。任意のオフジェクに対して、異なる処理を施す必要があるときには、 for e in Object(3), Object("ABC"), Object(good), Object(3.14), Objec…

《関連記事》

Smalltalk: a la carte(22)ifと別れる50の方法《6》switchは百害あって一理なし, 1988. 真樹育未 《Note》「一理」としたのは、意図的なものです。その謎解きは本文で ...φ(^.^)

クラス:Object

class Object: # ValueHolder def __init__(self, value): self.value = value def switch(self, cases): for key, value in cases.items(): if key == self.value: return apply(value, (self.value,)) if key == self.value.__class__: return apply(value…

ちゅ〜とりある (@.@) 組み込み関数 filter

Python.use(better, for=C#) 《記事一覧》 組み込み関数 filter 《著》後藤いるか・森こねこ《監修》小泉ひよ子とタマゴ倶楽部第0版♪1988/03/30 ● 第1版♪2000/05/23 ● 更新♪2008/10/28 《関連記事》 Python はじめました:組み込み関数 filter - 続・ひよ子…

ちゅ〜とりある (@.@) 組み込み関数 map

Python.use(better, for=C#) 《記事一覧》 組み込み関数 map 《著》後藤いるか・森こねこ《監修》小泉ひよ子とタマゴ倶楽部第0版♪1988/03/30 ● 第1版♪2000/05/23 《関連記事》 Python はじめました:組み込み関数 map - 続・ひよ子のきもち〈Python 3.0 版〉…

事例:Collection.iterate

OCL で規定された iterate 操作 *1 に準拠した機能を実現します。 class OCL_Sequence: def __init__(self, items): self.items = items def iterate(self, f, acc): for e in self.items: acc = apply(f, (e, acc)) return acc >>> OCL_Sequence(range(10))…

さまざまな事例

いくつかの簡単な適用事例を使って、組み込み関数 reduce の理解を深めます。 《Note》〈第0版〉Smalltalk-80 セミナーで提示した、アドリブ課題からの抜粋です。受講者のみなさんが、その理解度を自己確認できるようにと、セミナーの最中に作成したものを、…