|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/introduction-paradigme-fonction-python/
课程评论:没有评论
**课程名称:** Python函数式编程入门 (Initiation à la programmation fonctionnelle avec Python. λ) **课程概述:** 本课程旨在教授如何使用Python进行函数式编程。 **对于初学者:** * 快速学习一门新语言,并最大限度地减少需要掌握的概念。 * 通过递归和逻辑推理来描述算法。 * 理解循环是递归推理的结果。 * 初步了解map-reduce模型,用于处理数据集。 **对于有编程经验者:** * 通过递归推理来描述算法,从而写出更好的迭代。特别是找到循环不变式和循环退出条件。 * 区分指令和表达式,以及可变数据和不可变数据。 * 强调函数式编程在并发和分布式应用中的优势。 **课程内容:** 课程将首先快速介绍开发环境和函数式编程的直观概念。随后,深入探讨函数,介绍lambda演算及其在Python等语言中的应用。 课程将围绕函数式编程的核心特性展开,包括: * **数据不可变性:** 数据一旦创建,不可更改。 * **一等公民函数:** 函数可以像普通数据一样被传递、赋值和返回。 * **尾递归优化:** 提高递归函数的效率。 此外,还将介绍函数式编程的常用技术: * **映射(map)、归约(reduce)、管道(pipeline):** 处理数据集合。 * **递归(recursion):** 替代循环。 * **柯里化(currying):** 将多参数函数转换为一系列单参数函数。 * **高阶函数(higher-order functions):** 接受函数作为参数或返回函数的函数。 课程还将探讨函数式程序的优势: * **并行化(parallelization):** 易于实现并发执行。 * **惰性求值(lazy evaluation):** 延迟计算,提高效率。 * **确定性(determinism):** 相同的输入总是产生相同的输出。 **函数式编程的核心特征:** 函数式编程的核心在于**无副作用**,即不改变程序外部状态。代码不依赖于外部数据,也不修改外部数据。它将输入数据转换为新的输出数据,而不修改输入数据本身。 这一核心特性可以推导出函数式编程的其他特点: * **无循环 => 递归或reduce** * **无赋值 => 命名表达式** * **无指令 => 只有表达式和函数定义**
Apprenez à programmer en Python en utilisant le paradigme fonctionnelle. λL'objectif, si vous êtes débutant:D'aprendre rapidement un nouveaux language, en minimisant les notions à connaitre.Vous former à décrire un algorithme au moyen d'un raisonnement récursif et logique.Les répétitions (boucles) sont les conséquences d'un résonnement récursif.Initiation au modèle map-reduce pour les traitements sur les collections de donnéesL'objectif, si vous programmer déjàVous former à décrire un algorithme au moyen d'un raisonnement récursif, qui vous permettra d'écrire de meilleures itérations. En particulier pour trouver l'invariant de boucle et la condition de sortie de boucleDifférencier instructions et expressions, données mutable et immutableSouligner les avantages de la programmation fonctionnelle pour les applications concurrente et répartisAprès une présentation rapide de l'environnement que nous utiliserons et une première approche intuitive de la programmation fonctionnelle. Nous approfondirons les notions de fonctions avec une introduction au lambda calcul et ses applications possible dans un language tel que PythonQuand on aborde la programmation fonctionnelle, vous entendrez souvent parler d'un nombre étourdissant de caractéristiques « fonctionnelles »: les données immuables, les fonctions de première classe et l'optimisation de la récursion terminale. Ces fonctionnalités ne sont que des caractéristiques de langage qui facilitent la programmation fonctionnelle. On parle aussi de mappage, de réduction, de pipeline, de récursion, de curryfication et d'utilisation des fonctions d'ordre supérieur. Ce sont des techniques de programmation employées pour écrire du code fonctionnel. Il est enfin question de parallélisation, d'évaluation paresseuse et de déterminisme. Ce ne sont que des propriétés avantageuses des programmes fonctionnels.Un programme écrit en style fonctionnel se caractérise essentiellement par une chose essentielle: l'absence d'effets de bord, ou plus précisément l'abscence de changement d'états. Le code ne dépend pas de données se trouvant à l'extérieur de la fonction courante et il ne modifie pas des données à l'extérieur de cette fonction. Il transforme une donnée en entrée (sans la modifié) en donnée de sortie qu'elle crée.La plupart des autres caractéristiques de la programmation fonctionnelle peuvent se déduire de cette propriété. Utilisez-la comme un fil conducteur:Pas de boucles => récursivité ou reducePas d'affectations => nommage d'expressionsPas d'insctructions => uniquement expressions et définition de fonctions