Better quarantine class. Allows for pure functions to be first-class [again].

This commit is contained in:
Crista Lopes
2013-11-29 09:30:25 -08:00
parent b097639558
commit aa6d965641

View File

@@ -13,10 +13,13 @@ class TFQuarantine:
return self return self
def execute(self): def execute(self):
def guard_callable(v):
return v() if hasattr(v, '__call__') else v
value = lambda : None value = lambda : None
for func in self._funcs: for func in self._funcs:
value = func(value()) value = func(guard_callable(value))
print value() print guard_callable(value)
# #
# The functions # The functions
@@ -45,20 +48,16 @@ def remove_stop_words(word_list):
return _f return _f
def frequencies(word_list): def frequencies(word_list):
def _f(): word_freqs = {}
word_freqs = {} for w in word_list:
for w in word_list: if w in word_freqs:
if w in word_freqs: word_freqs[w] += 1
word_freqs[w] += 1 else:
else: word_freqs[w] = 1
word_freqs[w] = 1 return word_freqs
return word_freqs
return _f
def sort(word_freq): def sort(word_freq):
def _f(): return sorted(word_freq.iteritems(), key=operator.itemgetter(1), reverse=True)
return sorted(word_freq.iteritems(), key=operator.itemgetter(1), reverse=True)
return _f
def top25_freqs(word_freqs): def top25_freqs(word_freqs):
def _f(): def _f():