|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Bonjour
Une question "théorique" me tracasse depuis quelque temps : Imaginons le prédicat Prolog suivant Code :
Venons-en maintenant à ma question : si j'utilise ce prédicat dans un maplist qui est un prédicat Prolog qui permet d'appliquer une régle sur une liste afin éventuellement d'obtenir une liste résultat (un peu comme le map du Lisp), par exemple : maplist(extract(Ensemble1, Ensemble2), ListeElements, ListeResultats) peut-on parler de "curryfication" ?
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Damien GuichardInscription : juin 2007 Messages : 1 518 ![]() |
Ce que ton exemple démontre c'est que :
Tu n'as pas besoin de curryfication si tu possède déjà ces deux caractéristiques, la curryfication c'est la même chose avec en plus des types fonctionnels. Tu n'en as pas besoin mais si ça t'intéresse quand même :
Code Caml :
__________________
Du même auteur: le cours OCaml, le dernier article publié, le projet, le blog dvp et le jeu vidéo. Avant de poser une question je lis les règles du forum. |
||
|
00
|
|
|
#3 |
![]() ![]() Inscription : septembre 2003 Messages : 4 443 ![]() |
Merci de ton explication. J'y vois un peu plus clair.
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
00
|
|
|
#4 |
![]() ![]() Damien GuichardInscription : juin 2007 Messages : 1 518 ![]() |
La curryfication est aussi une notion de logique, pas seulement une notion de programmation.
Il y a une correspondance entre les types fonctionnels et les propositions logiques. Le type (A × B → C) → (A → B → C) correspond à la proposition (A & B ⇒ C) ⇒ (A ⇒ B ⇒ C). Cette proposition donne une sémantique pour la conjonction, qui est celle utilisée lors de la démonstration. En effet, pour prouver que (A & B) ⇒ C est vrai :
Derrière le nom barbare il y a une proposition qui ne fait que formaliser une pratique courante de la démonstration.
__________________
Du même auteur: le cours OCaml, le dernier article publié, le projet, le blog dvp et le jeu vidéo. Avant de poser une question je lis les règles du forum. |
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : avril 2007 Messages : 829 ![]() |
Remarque : pour une vision de plus haut niveau de la curryfication, au delà du traitement logique on peut la représenter dans un cadre catégorique, comme l'adjonction entre (* A) et (A =>), qui permet de passer de (X * A -> Y) à (X -> (A => Y)).
Ce n'est certainement pas le seul point de vue possible, mais il apporte un large spectre d'applications (à toutes les interprétations catégoriques des langages de programmation, par exemple). |
|
|
10
|
Copyright © 2000-2013 - www.developpez.com