Отрывки функционального программирования Python

Я видел, что некоторые изящные отрывки Python использовать понимание списка и карту уменьшают. Можно ли совместно использовать некоторые из них, кодируют или веб-сайт.

Спасибо.

9
задан user253951 19 January 2010 в 12:24
поделиться

4 ответа

Python не является Lisp. Пожалуйста, не пытайтесь заставить это выглядеть таким образом. Он только уменьшает один из самых больших сильных сторон Python, который является его читаемостью и понятностью позже.

Если вам нравится функциональное программирование, узнайте HASKELL , ML , или F # . Вы будете поражены тем, что предлагают эти языки (чистые функции для начала).

7
ответ дан 4 December 2019 в 12:18
поделиться

здесь есть несколько хороших функциональных фрагментов стилей: Функциональное программирование Howto

5
ответ дан 4 December 2019 в 12:18
поделиться

Вот быстрый сортировку:

def qsort (list):
    if (len(list) > 1):
        list = qsort(filter (lambda x: x <= list[0], list[1:])) + [list[0]] + qsort(filter (lambda x: x > list[0],  list[1:]))
    return list

Это решение для Программирование головоломки нахождения пропущенного номера среди целых чисел от 1 до 100:

from random import randint
nos = range(1,101)
to_remove = randint(1,100)
nos.remove(to_remove)
print "Removed %d from list" % to_remove

found = 5050 - reduce (lambda x,y: x+y, nos)
print "You removed %d " % found
2
ответ дан 4 December 2019 в 12:18
поделиться

Будьте осторожны при программировании Python в функциональном стиле. Единственная причина когда-либо делать это для чтения. Если алгоритм более элегантно выражается функционально, чем нет, и это не вызывает проблем с производительностью (обычно не), а затем идет прямо.

Однако Python не оптимизирует рекурсию хвоста и имеет фиксированный предел рекурсиона 1000, поэтому вы обычно не можете сделать рекурсию O (N), только O (log (n)).

также уменьшается () удаляется в Python 3, по хорошей причине ( http://www.artima.com/weblogs/viewpost.jsp?thread=98196 ). Большинство нетривиальных применений уменьшения более читаются как нормальная петля вместо сокращения, а сумма () уже встроена.

3
ответ дан 4 December 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: