Functional Programming in Python

9

Click here to load reader

description

Examples of

Transcript of Functional Programming in Python

Page 1: 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
Page 2: Functional Programming in Python

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

Форматирование оси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
Page 3: Functional Programming in Python

Форматирование оси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
Page 4: Functional Programming in Python

Нет 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
Page 5: Functional Programming in Python

Присвоить две переменные из 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
Page 6: Functional Programming in Python

Сортировать один список на основедругого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
Page 7: Functional Programming in Python

Удаление элементов из списка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
Page 8: Functional Programming in Python

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
Page 9: Functional Programming in Python

Credits

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

bull ссылка на github

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