13章閉写像――プロトタイプClosed Maps

制約

  • 大きな問題は、問題領域に対して意味のあるモノ(things)に分解される。
  • キーと値の辞書がモノを表現する。値は手続きや関数の場合もある。
  • 手続きや関数は辞書に格納され、スロットを通して参照する。

プログラム

 1 #!/usr/bin/env python
 2 import sys, re, operator, string
 3
 4 # lambdaにできない補助関数
 5 #
 6 def extract_words(obj, path_to_file):
 7     with open(path_to_file) as f:
 8         obj['data'] = f.read()
 9     pattern = re.compile(r'[\W_]+')
10     data_str = ''.join(pattern.sub(' ', obj['data']).lower())
11     obj['data'] = data_str.split()
12
13 def load_stop_words(obj):
14     with open('../stop_words.txt') as f:
15         obj['stop_words'] = f.read().split(',')
16     # 1文字を単語として追加
17     obj['stop_words'].extend(list(string.ascii_lowercase))

Get プログラミング文体練習 ―Pythonで学ぶ40のプログラミングスタイル now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.