This commit is contained in:
Oscar Plaisant 2024-03-30 03:09:29 +01:00
parent fb7eb57cf3
commit b29f59b672
12 changed files with 99 additions and 14 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -1 +1 @@
{"matrice hessienne":{"matrice hessienne":{"internalLink":{"count":2,"lastUpdated":1710324879177}}},"fonction de plusieurs variables":{"fonction de plusieurs variables":{"internalLink":{"count":1,"lastUpdated":1709121880741}}},"manim Ellipse":{"manim Ellipse":{"internalLink":{"count":1,"lastUpdated":1709296590359}}},"baptême":{"baptême":{"internalLink":{"count":5,"lastUpdated":1709864270370}}},"gradient":{"gradient":{"internalLink":{"count":1,"lastUpdated":1710325461961}}},"obsidian plugin tag and wordcloud":{"obsidian plugin tag and wordcloud":{"internalLink":{"count":1,"lastUpdated":1710345237714}}},"intersection de sous groupes":{"intersection de sous groupes":{"internalLink":{"count":1,"lastUpdated":1710465530327}}},"valeurs":{"valeurs":{"internalLink":{"count":1,"lastUpdated":1711459246780}}},"Learning APL":{"Learning APL":{"internalLink":{"count":1,"lastUpdated":1711584419388}}},"structure de donnés":{"structure de donnés":{"internalLink":{"count":1,"lastUpdated":1711621251914}}},"paramètre":{"paramètre":{"internalLink":{"count":1,"lastUpdated":1711621492446}}},"langage de programmation":{"langage de programmation":{"internalLink":{"count":1,"lastUpdated":1711621841863}}},"argument d'une fonction":{"argument d'une fonction":{"internalLink":{"count":1,"lastUpdated":1711624010397}}},"argument":{"argument":{"internalLink":{"count":2,"lastUpdated":1711624133731}}},"techniques de pkm":{"techniques de pkm":{"internalLink":{"count":1,"lastUpdated":1711627281333}}},"paradigme de programmation":{"paradigme de programmation":{"internalLink":{"count":5,"lastUpdated":1711667940041}}},"état":{"état":{"internalLink":{"count":1,"lastUpdated":1711628232311}}},"structure de données":{"structure de données":{"internalLink":{"count":1,"lastUpdated":1711643699590}}},"structures de données":{"structures de données":{"internalLink":{"count":1,"lastUpdated":1711644884793}}},"enregistrement":{"enregistrement":{"internalLink":{"count":1,"lastUpdated":1711668283936}}}} {"matrice hessienne":{"matrice hessienne":{"internalLink":{"count":2,"lastUpdated":1710324879177}}},"manim Ellipse":{"manim Ellipse":{"internalLink":{"count":1,"lastUpdated":1709296590359}}},"baptême":{"baptême":{"internalLink":{"count":5,"lastUpdated":1709864270370}}},"gradient":{"gradient":{"internalLink":{"count":1,"lastUpdated":1710325461961}}},"obsidian plugin tag and wordcloud":{"obsidian plugin tag and wordcloud":{"internalLink":{"count":1,"lastUpdated":1710345237714}}},"intersection de sous groupes":{"intersection de sous groupes":{"internalLink":{"count":1,"lastUpdated":1710465530327}}},"valeurs":{"valeurs":{"internalLink":{"count":1,"lastUpdated":1711459246780}}},"Learning APL":{"Learning APL":{"internalLink":{"count":1,"lastUpdated":1711584419388}}},"structure de donnés":{"structure de donnés":{"internalLink":{"count":1,"lastUpdated":1711621251914}}},"paramètre":{"paramètre":{"internalLink":{"count":1,"lastUpdated":1711621492446}}},"langage de programmation":{"langage de programmation":{"internalLink":{"count":1,"lastUpdated":1711621841863}}},"argument d'une fonction":{"argument d'une fonction":{"internalLink":{"count":1,"lastUpdated":1711624010397}}},"argument":{"argument":{"internalLink":{"count":2,"lastUpdated":1711624133731}}},"techniques de pkm":{"techniques de pkm":{"internalLink":{"count":1,"lastUpdated":1711627281333}}},"paradigme de programmation":{"paradigme de programmation":{"internalLink":{"count":5,"lastUpdated":1711667940041}}},"état":{"état":{"internalLink":{"count":1,"lastUpdated":1711628232311}}},"structure de données":{"structure de données":{"internalLink":{"count":1,"lastUpdated":1711643699590}}},"structures de données":{"structures de données":{"internalLink":{"count":1,"lastUpdated":1711644884793}}},"enregistrement":{"enregistrement":{"internalLink":{"count":1,"lastUpdated":1711668283936}}},"envoi de messages entre objets":{"envoi de messages entre objets":{"internalLink":{"count":1,"lastUpdated":1711742931869}}},"programmation structurée":{"programmation structurée":{"internalLink":{"count":1,"lastUpdated":1711764089506}}}}

0
.trash/Untitled 2 4.md Normal file
View File

View File

@ -40,7 +40,23 @@ Tous les paradigmes sont équivalent puisqu'ils sont tous turing-complets
### Au sens commun ### Au sens commun
# Paradigmes dans l'apprentissages # Paradigmes dans l'apprentissages
## avantages de la diversité ## avantages de la diversité
-
> [!cite]+ [10 Things Software Developers Should Learn about Learning](zotero://select/groups/5383243/items/E829XCHJ) - [Page 81](zotero://open-pdf/groups/5383243/items/SQN4T6Z8?page=4&annotation=7WYHBT9D)
> One key difference between beginners and experts is that experts have seen it all before. Research into chess experts has shown that their primary advantage is their ability to remember and recognize the state of the board.
>
> > [!note] Notes
> > L'avantage des experts est d'avoir en mémoire beaucoup de cas, quand les débutants doivent réfléchir pour chaque nouveau cas.
> ^7WYHBT9DaSQN4T6Z8g5383243p4
> [!cite]+ [10 Things Software Developers Should Learn about Learning](zotero://select/groups/5383243/items/E829XCHJ) - [Page 81](zotero://open-pdf/groups/5383243/items/SQN4T6Z8?page=4&annotation=K2JKSWGE)
> Experts build up a mental library of patterns
> ^K2JKSWGEaSQN4T6Z8g5383243p4
> [!cite]+ [10 Things Software Developers Should Learn about Learning](zotero://select/groups/5383243/items/E829XCHJ) - [Page 81](zotero://open-pdf/groups/5383243/items/SQN4T6Z8?page=4&annotation=2PSW4XYM)
> seeing a variety of programming paradigms will help further.
> ^2PSW4XYMaSQN4T6Z8g5383243p4
## problèmes de la diversité ## problèmes de la diversité
> [!cite]+ [10 Things Software Developers Should Learn about Learning](zotero://select/groups/5383243/items/E829XCHJ) - [Page 84](zotero://open-pdf/groups/5383243/items/SQN4T6Z8?page=7&annotation=588UCYYD) > [!cite]+ [10 Things Software Developers Should Learn about Learning](zotero://select/groups/5383243/items/E829XCHJ) - [Page 84](zotero://open-pdf/groups/5383243/items/SQN4T6Z8?page=7&annotation=588UCYYD)
@ -58,4 +74,12 @@ Langages multi-paradigmes
# Les paradigmes pour outil pour la pensée # Les paradigmes comme outil pour la pensée
Connaître un système de calcul ne permet pas d'immédiatement tout connaître sur son champ d'expressivité
Notamment :
- connaître un système de calcul ne permet pas (toujours) de connaître l'ensemble des problèmes décidables de ce système
- En particulier, les systèmes universels (Turing-complets) : il existe toujours des problèmes indécidables dans de tels modèles (problème de l'arrêt)
De la même manière, connaître un langage de programmation ne permet pas de savoir immédiatement résoudre tous les problèmes que l'on peut rencontrer. Par exemple, la syntaxe des langages similaires à LISP est très simple et peut être apprise en quelques heures pour certains dialectes. Cependant, connaître la syntaxe complête et le fonctionnement de LISP ne permettra pas de résoudre tout problème : il est également nécessaire d'être capable de "faire le lien" entre un problème et un langage. C'est ce lien que les paradigmes de programmation permettent de faire, soit en donnant explicitement une méthode pour le faire (comme la [[paradigme programmation structurée|programmation structurée]]), soit en définissant comment le programmeur doit voir les programmes, soit en implémentant certaines fonctionnalités utiles pour gérer certains problèmes.

0
avantage.md Normal file
View File

View File

@ -4,13 +4,6 @@ kung_fu: 0
--- ---
## Todo ## Todo
- [ ] #task déposer chèque 🔺
- [ ] #task photos d'identité pour permis ⏫
- [ ] #task remettre camille
- [ ] #task courrier recommandé pour annuler plainte 🔺
- [ ] #task convention de stage ⏫
- [ ] #task payer felix
- [ ] #task gérer CERCIP ⏫
- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]` - spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]`
- kung-fu : `INPUT[number:kung_fu]` minutes - kung-fu : `INPUT[number:kung_fu]` minutes

26
daily/2024-03-30.md Normal file
View File

@ -0,0 +1,26 @@
---
spaced_repetition: 0
kung_fu: 0
---
## Todo
- [x] #task déposer chèque 🔺 ✅ 2024-03-30
- [ ] #task envoyer attestation service fait 🔺
- [ ] #task photos d'identité pour permis ⏫
- [ ] #task remettre camille
- [ ] #task courrier recommandé pour annuler plainte 🔺
- [ ] #task convention de stage ⏫
- [ ] #task payer felix
- [ ] #task gérer CERCIP ⏫
- spaced repetition : `INPUT[toggle(onValue(1), offValue(0)):spaced_repetition]`
- kung-fu : `INPUT[number:kung_fu]` minutes
## I did
> [!smallquery]+ Modified files
> ```dataview
> LIST file.mtime
> where file.mtime > date(this.file.name) and file.mtime < (date(this.file.name) + dur(1 day)) sort file.mtime asc
> ```
## I am gratefull to

View File

@ -1,3 +1,7 @@
---
aliases:
- programmation fonctionnelle
---
up:: [[paradigme de programmation|paradigme]] up:: [[paradigme de programmation|paradigme]]
#informatique #informatique

View File

@ -7,6 +7,9 @@ up:: [[paradigme de programmation]]
> [!definition] programmation procédurale > [!definition] programmation procédurale
> La programmation procédurale est un type de [[paradigme programmation impérative|programmation impérative]] dans lequel le programme est exprimé comme des [[programmation.procédure|procédures]] qui s'appellent entre elles. > La programmation procédurale est un type de [[paradigme programmation impérative|programmation impérative]] dans lequel le programme est exprimé comme des [[programmation.procédure|procédures]] qui s'appellent entre elles.
> Un programme est alors une séries d'étapes qui forment une hiérarchie d'appels aux procédures qui le constituent > Un programme est alors une séries d'étapes qui forment une hiérarchie d'appels aux procédures qui le constituent.
> [!warning] procédural $\neq$ avec des procédures
> > Tous les langages
^definition ^definition

View File

@ -0,0 +1,20 @@
> [!definition] Postulat
> Chaque paradigme permet de résoudre une classe de problèmes.
> Plus précisément : l'existance de chaque paradigme est justifée / justifiable parce que ce paradigme permet de simplifier beaucoup la résolution de certains problèmes.
## [[paradigme programmation fonctionnelle|programmation fonctionnelle]]
permet d'éviter les problèmes causés par les effets de bord.
## [[paradigme programmation orientée objet|programmation orientée objet]]
Pouvoir modéliser des hiérarchies complexes
à voir :
- justification de l'[[envoi de messages entre objets]]

View File

@ -30,7 +30,14 @@ up:: [[paradigme de programmation]]
3. implémentation d'une solution **dans le langage lui-même** 3. implémentation d'une solution **dans le langage lui-même**
4. la simplicité est conservée / retrouvée (on évite les modifications envahissantes) 4. la simplicité est conservée / retrouvée (on évite les modifications envahissantes)
> [!cite] [Programming Paradigms for Dummies: What Every Programmer Should Know](zotero://select/groups/5383243/items/673TMQRT) - [Page 17](zotero://open-pdf/groups/5383243/items/P4L4LCJZ?page=9&annotation=6ZNVVQGI) > [!cite]+ [The paradigms of programming](zotero://select/groups/5383243/items/Y8NDFJ8W) - [Page 3](zotero://open-pdf/groups/5383243/items/WWITR642?page=3&annotation=QWLFQ9JA)
> After solving a challenging problem, ! solve it again from scratch, retracing only the insight of the earlier solution. I repeat this until the solution is as clear and direct as I can hope for. Then I look for a general rule for attacking similar problems, that would have led me to approach the given problem in the most efficient way the first time. Often, such a rule is of permanent value.
>
> > [!note] Notes
> > définition originale de l'extension créative
> ^QWLFQ9JAaWWITR642g5383243p3
> [!cite]- [Programming Paradigms for Dummies: What Every Programmer Should Know](zotero://select/groups/5383243/items/673TMQRT) - [Page 17](zotero://open-pdf/groups/5383243/items/P4L4LCJZ?page=9&annotation=6ZNVVQGI)
> The common theme in these three scenarios (and many others!) is that we need to do pervasive (nonlocal) modifications of the program in order to handle a new concept. If the need for pervasive modifications manifests itself, we can take this as a sign that there is a new concept waiting to be discovered. By adding this concept to the language we no longer need these pervasive modifications and we recover the simplicity of the program. > The common theme in these three scenarios (and many others!) is that we need to do pervasive (nonlocal) modifications of the program in order to handle a new concept. If the need for pervasive modifications manifests itself, we can take this as a sign that there is a new concept waiting to be discovered. By adding this concept to the language we no longer need these pervasive modifications and we recover the simplicity of the program.
> >
> > [!note] Notes > > [!note] Notes
@ -39,7 +46,7 @@ up:: [[paradigme de programmation]]
> > ajouter ce concept au langage => éviter les modifications envahissantes => retrouver la simplicité > > ajouter ce concept au langage => éviter les modifications envahissantes => retrouver la simplicité
> ^6ZNVVQGIaP4L4LCJZg5383243p9 > ^6ZNVVQGIaP4L4LCJZg5383243p9
## Exemples de modifications envahissantes et solutions # Exemples
> [!cite] [Programming Paradigms for Dummies: What Every Programmer Should Know](zotero://select/groups/5383243/items/673TMQRT) - [Page 17](zotero://open-pdf/groups/5383243/items/P4L4LCJZ?page=9&annotation=VAZ8DBMA) > [!cite] [Programming Paradigms for Dummies: What Every Programmer Should Know](zotero://select/groups/5383243/items/673TMQRT) - [Page 17](zotero://open-pdf/groups/5383243/items/P4L4LCJZ?page=9&annotation=VAZ8DBMA)
> If we need to model updatable memory, that is, entities that remember and update their past, then we will have to add two arguments to all function calls relative to that entity. The arguments represent the input and output values of the memory. This is unwieldy and it is also not modular because the memory travels throughout the whole program. All this clumsiness is unnecessary if we add one concept to the language: named state. > If we need to model updatable memory, that is, entities that remember and update their past, then we will have to add two arguments to all function calls relative to that entity. The arguments represent the input and output values of the memory. This is unwieldy and it is also not modular because the memory travels throughout the whole program. All this clumsiness is unnecessary if we add one concept to the language: named state.

View File

@ -4,10 +4,18 @@ aliases:
- procédures - procédures
--- ---
up:: [[programmation]] up:: [[programmation]]
sibling:: [[programmation.fonction|fonction]]
#informatique #informatique
> [!definition] procédure > [!definition] procédure
> Une procédure est l'encapsulation d'un ensemble d'instructions. > Une procédure est l'encapsulation d'un ensemble d'instructions.
> Une procédure peut possèder des [[paramètre d'une fonction|paramètres]] qui peuvent influencer son exécution. > Une procédure peut possèder des [[paramètre d'une fonction|paramètres]] qui peuvent influencer son exécution.
> Contrairement à une fonction, une procédure ne peut pas retourner de valeur. Elle peut cependant [[programmation.modification des paramètres|modifier ses paramètres]] > Contrairement à une fonction, une procédure ne peut pas retourner de valeur. Elle peut cependant [[programmation.modification des paramètres|modifier ses paramètres]]
^definition ^definition
> [!definition] procédure
> Une procédure est l'encapsulation d'un ensemble d'instructions.
> Une procédure peut possèder des [[paramètre d'une fonction|paramètres]] qui peuvent influencer son exécution.
> Contrairement à une fonction, une procédure ne peut pas retourner de valeur. Elle peut cependant [[programmation.modification des paramètres|modifier ses paramètres]]
^definition-sicp