Я использую doctest[1] почти везде, потому что мне нравится то, что я документирую и тестирую свои функции одновременно.
Взглянули на этот код:
def throw_up(something, gowrong=False):
"""
>>> throw_up('Fish n Chips')
Traceback (most recent call last):
...
Exception: Fish n Chips
>>> throw_up('Fish n Chips', gowrong=True)
'I feel fine!'
"""
if gowrong:
return "I feel fine!"
raise Exception(something)
if __name__ == '__main__':
import doctest
doctest.testmod()
, Если Вы помещаете этот пример в модуль и выполняете его из командной строки, оба тестовых сценария оценены и проверены.
[1] документация Python: 23.2 doctest - Тест интерактивные примеры Python
$left = New-HashSet string
$left.Add("foo")
$left.Add("bar")
$right = New-HashSet string
$right.Add("bar")
$right.Add("baz")
$left.IntersectWith($right)
$left.UnionWith($right)
(заимствование New-HashSet из Джоша Эйнштейна )
Предупреждение: эти методы в HashSet представляют собой локальные алгоритмы, которые изменяют исходную коллекцию. Если вам нужно преобразование в функциональном стиле для неизменяемых объектов, вам нужно использовать LINQ на вечеринке:
add-type system.core
$asqueryable = [system.linq.queryable].getmethods() | ? { $_.name -eq "AsQueryable" } | select -first 1
$asqueryable = $asqueryable.MakeGenericMethod([string])
$leftAsQueryable = $asqueryable.Invoke($null, (,$left))
$intersect = [system.linq.queryable].getmethods() | ? { $_.name -eq "Intersect" } | select -first 1
$intersect = $intersect.MakeGenericMethod([string])
$result = $intersect.Invoke($null, ($leftAsQueryable, $right))
Очевидно, кому-то нужно обернуть эту хрень с общим статическим отражением в удобный командлет! Не волнуйтесь, я над этим работаю ...
Ссылка на Google: MapReduce: упрощенная обработка данных в больших кластерах
Появился в :
OSDI'04: Шестой симпозиум по разработке и реализации операционных систем,
Сан-Франциско, Калифорния, декабрь 2004 г.
Эта ссылка содержит ссылку на PDF-файл и HTML-слайд.
Существует также страница Википедии с описанием со ссылками на реализацию.
Также критика,
Дэвид ДеВитт и Майкл Стоунбрейкер, первопроходцы в области параллельных баз данных и не имеющие общих архитектур, сделали несколько противоречивых заявлений о широте круга проблем, для решения которых можно использовать MapReduce. Они назвали его интерфейс слишком низкоуровневым и задались вопросом, действительно ли он представляет собой сдвиг парадигмы, о котором заявляли его сторонники. Они оспаривают утверждения сторонников MapReduce о новизне, ссылаясь на Teradata как на образец предшествующего уровня техники, существующего более двух десятилетий; они сравнили программистов MapReduce с программистами Codasyl, отметив, что оба " Вы можете работать с другими словарями с помощью
aspell
.
Или просто возьмите генератор анаграмм, подобный этому, сделанный для игроков Scrabble .
У Revolution Word Finder есть два варианта; поисковик анаграмм и решатель скрэббл. Средство поиска анаграмм берет список букв и возвращает все действительные анаграммы, которые можно создать с их помощью, относительно фиксированного списка слов. Каждая анаграмма проверяется на достоверность по списку слов SOWPODS , который является списком слов, используемым в текущих международных турнирах по скрэбблу.