Functional Programming in Python

Post on 25-May-2015

1.323 views 2 download

description

Examples of

Transcript of Functional Programming in Python

Functional Programming in Python(в примерах)

Артем Дударевкофе-и-код Донецк январь 2011

Новые подписчики

Форматирование осиax = axes([015 022 075 075])yAxis = axyaxisyAxisset_major_formatter( tickerFuncFormatter( lambda x pos str(x) if x2 == 0 else ))

код на github

Нет switchoption1 function1 option2 function2 option3 function3[value]()

result = a lambda x x 5 b lambda x x + 7 c lambda x x - 2[value](x)

обсуждениееще на stackoverflowcom

Присвоить две переменные из strcoord_str = 4837latlon = map(float coord_strsplit())print latlon 480 370join(map(str (latlon))) 480370

Сортировать один список на основедругогоdef psort4(s1 s2) _indices = range(len(s1)) _indicessort(key=s2__getitem__) s1[] = map(s1__getitem__ _indices)

несколько способов делать это (этот самыйбыстрый)

Удаление элементов из спискаa=range(10)for item in a if itemlt5 aremove(item)print a Вернет [1 3 5 6 7 8 9]

filter(lambda x xgt=5 a)[i for i in a if igt=5] list comprehension Вернут [6 7 8 9] Список а остался неизменным

из недавней заметки на Хабре

Linkdump

bull Guido van Rossum о происхождении элементовФП в Python

bull Перевод поста на Хабреbull Python Functional Programming HOWTO

Основная мысльlambda map filter reduce вводились каксинтаксический сахарсейчас чаще употребляются итераторы генераторыlist comprehension

Credits

bull картинка слона (блог Thomas Guest)bull rst2pdfbull частично использовался стиль от Alexis Meacutetaireau

bull ссылка на github

  • Новые подписчики
  • Форматирование оси
  • Нет switch
  • Присвоить две переменные из str
  • Сортировать один список на основе другого
  • Удаление элементов из списка
  • Linkdump
  • Credits

Новые подписчики

Форматирование осиax = axes([015 022 075 075])yAxis = axyaxisyAxisset_major_formatter( tickerFuncFormatter( lambda x pos str(x) if x2 == 0 else ))

код на github

Нет switchoption1 function1 option2 function2 option3 function3[value]()

result = a lambda x x 5 b lambda x x + 7 c lambda x x - 2[value](x)

обсуждениееще на stackoverflowcom

Присвоить две переменные из strcoord_str = 4837latlon = map(float coord_strsplit())print latlon 480 370join(map(str (latlon))) 480370

Сортировать один список на основедругогоdef psort4(s1 s2) _indices = range(len(s1)) _indicessort(key=s2__getitem__) s1[] = map(s1__getitem__ _indices)

несколько способов делать это (этот самыйбыстрый)

Удаление элементов из спискаa=range(10)for item in a if itemlt5 aremove(item)print a Вернет [1 3 5 6 7 8 9]

filter(lambda x xgt=5 a)[i for i in a if igt=5] list comprehension Вернут [6 7 8 9] Список а остался неизменным

из недавней заметки на Хабре

Linkdump

bull Guido van Rossum о происхождении элементовФП в Python

bull Перевод поста на Хабреbull Python Functional Programming HOWTO

Основная мысльlambda map filter reduce вводились каксинтаксический сахарсейчас чаще употребляются итераторы генераторыlist comprehension

Credits

bull картинка слона (блог Thomas Guest)bull rst2pdfbull частично использовался стиль от Alexis Meacutetaireau

bull ссылка на github

  • Новые подписчики
  • Форматирование оси
  • Нет switch
  • Присвоить две переменные из str
  • Сортировать один список на основе другого
  • Удаление элементов из списка
  • Linkdump
  • Credits

Форматирование осиax = axes([015 022 075 075])yAxis = axyaxisyAxisset_major_formatter( tickerFuncFormatter( lambda x pos str(x) if x2 == 0 else ))

код на github

Нет switchoption1 function1 option2 function2 option3 function3[value]()

result = a lambda x x 5 b lambda x x + 7 c lambda x x - 2[value](x)

обсуждениееще на stackoverflowcom

Присвоить две переменные из strcoord_str = 4837latlon = map(float coord_strsplit())print latlon 480 370join(map(str (latlon))) 480370

Сортировать один список на основедругогоdef psort4(s1 s2) _indices = range(len(s1)) _indicessort(key=s2__getitem__) s1[] = map(s1__getitem__ _indices)

несколько способов делать это (этот самыйбыстрый)

Удаление элементов из спискаa=range(10)for item in a if itemlt5 aremove(item)print a Вернет [1 3 5 6 7 8 9]

filter(lambda x xgt=5 a)[i for i in a if igt=5] list comprehension Вернут [6 7 8 9] Список а остался неизменным

из недавней заметки на Хабре

Linkdump

bull Guido van Rossum о происхождении элементовФП в Python

bull Перевод поста на Хабреbull Python Functional Programming HOWTO

Основная мысльlambda map filter reduce вводились каксинтаксический сахарсейчас чаще употребляются итераторы генераторыlist comprehension

Credits

bull картинка слона (блог Thomas Guest)bull rst2pdfbull частично использовался стиль от Alexis Meacutetaireau

bull ссылка на github

  • Новые подписчики
  • Форматирование оси
  • Нет switch
  • Присвоить две переменные из str
  • Сортировать один список на основе другого
  • Удаление элементов из списка
  • Linkdump
  • Credits

Нет switchoption1 function1 option2 function2 option3 function3[value]()

result = a lambda x x 5 b lambda x x + 7 c lambda x x - 2[value](x)

обсуждениееще на stackoverflowcom

Присвоить две переменные из strcoord_str = 4837latlon = map(float coord_strsplit())print latlon 480 370join(map(str (latlon))) 480370

Сортировать один список на основедругогоdef psort4(s1 s2) _indices = range(len(s1)) _indicessort(key=s2__getitem__) s1[] = map(s1__getitem__ _indices)

несколько способов делать это (этот самыйбыстрый)

Удаление элементов из спискаa=range(10)for item in a if itemlt5 aremove(item)print a Вернет [1 3 5 6 7 8 9]

filter(lambda x xgt=5 a)[i for i in a if igt=5] list comprehension Вернут [6 7 8 9] Список а остался неизменным

из недавней заметки на Хабре

Linkdump

bull Guido van Rossum о происхождении элементовФП в Python

bull Перевод поста на Хабреbull Python Functional Programming HOWTO

Основная мысльlambda map filter reduce вводились каксинтаксический сахарсейчас чаще употребляются итераторы генераторыlist comprehension

Credits

bull картинка слона (блог Thomas Guest)bull rst2pdfbull частично использовался стиль от Alexis Meacutetaireau

bull ссылка на github

  • Новые подписчики
  • Форматирование оси
  • Нет switch
  • Присвоить две переменные из str
  • Сортировать один список на основе другого
  • Удаление элементов из списка
  • Linkdump
  • Credits

Присвоить две переменные из strcoord_str = 4837latlon = map(float coord_strsplit())print latlon 480 370join(map(str (latlon))) 480370

Сортировать один список на основедругогоdef psort4(s1 s2) _indices = range(len(s1)) _indicessort(key=s2__getitem__) s1[] = map(s1__getitem__ _indices)

несколько способов делать это (этот самыйбыстрый)

Удаление элементов из спискаa=range(10)for item in a if itemlt5 aremove(item)print a Вернет [1 3 5 6 7 8 9]

filter(lambda x xgt=5 a)[i for i in a if igt=5] list comprehension Вернут [6 7 8 9] Список а остался неизменным

из недавней заметки на Хабре

Linkdump

bull Guido van Rossum о происхождении элементовФП в Python

bull Перевод поста на Хабреbull Python Functional Programming HOWTO

Основная мысльlambda map filter reduce вводились каксинтаксический сахарсейчас чаще употребляются итераторы генераторыlist comprehension

Credits

bull картинка слона (блог Thomas Guest)bull rst2pdfbull частично использовался стиль от Alexis Meacutetaireau

bull ссылка на github

  • Новые подписчики
  • Форматирование оси
  • Нет switch
  • Присвоить две переменные из str
  • Сортировать один список на основе другого
  • Удаление элементов из списка
  • Linkdump
  • Credits

Сортировать один список на основедругогоdef psort4(s1 s2) _indices = range(len(s1)) _indicessort(key=s2__getitem__) s1[] = map(s1__getitem__ _indices)

несколько способов делать это (этот самыйбыстрый)

Удаление элементов из спискаa=range(10)for item in a if itemlt5 aremove(item)print a Вернет [1 3 5 6 7 8 9]

filter(lambda x xgt=5 a)[i for i in a if igt=5] list comprehension Вернут [6 7 8 9] Список а остался неизменным

из недавней заметки на Хабре

Linkdump

bull Guido van Rossum о происхождении элементовФП в Python

bull Перевод поста на Хабреbull Python Functional Programming HOWTO

Основная мысльlambda map filter reduce вводились каксинтаксический сахарсейчас чаще употребляются итераторы генераторыlist comprehension

Credits

bull картинка слона (блог Thomas Guest)bull rst2pdfbull частично использовался стиль от Alexis Meacutetaireau

bull ссылка на github

  • Новые подписчики
  • Форматирование оси
  • Нет switch
  • Присвоить две переменные из str
  • Сортировать один список на основе другого
  • Удаление элементов из списка
  • Linkdump
  • Credits

Удаление элементов из спискаa=range(10)for item in a if itemlt5 aremove(item)print a Вернет [1 3 5 6 7 8 9]

filter(lambda x xgt=5 a)[i for i in a if igt=5] list comprehension Вернут [6 7 8 9] Список а остался неизменным

из недавней заметки на Хабре

Linkdump

bull Guido van Rossum о происхождении элементовФП в Python

bull Перевод поста на Хабреbull Python Functional Programming HOWTO

Основная мысльlambda map filter reduce вводились каксинтаксический сахарсейчас чаще употребляются итераторы генераторыlist comprehension

Credits

bull картинка слона (блог Thomas Guest)bull rst2pdfbull частично использовался стиль от Alexis Meacutetaireau

bull ссылка на github

  • Новые подписчики
  • Форматирование оси
  • Нет switch
  • Присвоить две переменные из str
  • Сортировать один список на основе другого
  • Удаление элементов из списка
  • Linkdump
  • Credits

Linkdump

bull Guido van Rossum о происхождении элементовФП в Python

bull Перевод поста на Хабреbull Python Functional Programming HOWTO

Основная мысльlambda map filter reduce вводились каксинтаксический сахарсейчас чаще употребляются итераторы генераторыlist comprehension

Credits

bull картинка слона (блог Thomas Guest)bull rst2pdfbull частично использовался стиль от Alexis Meacutetaireau

bull ссылка на github

  • Новые подписчики
  • Форматирование оси
  • Нет switch
  • Присвоить две переменные из str
  • Сортировать один список на основе другого
  • Удаление элементов из списка
  • Linkdump
  • Credits

Credits

bull картинка слона (блог Thomas Guest)bull rst2pdfbull частично использовался стиль от Alexis Meacutetaireau

bull ссылка на github

  • Новые подписчики
  • Форматирование оси
  • Нет switch
  • Присвоить две переменные из str
  • Сортировать один список на основе другого
  • Удаление элементов из списка
  • Linkdump
  • Credits