Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2765 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Une explication sur amb ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Une explication sur amb ?

n°918079
Chronoklaz​m
Posté le 08-12-2004 à 16:27:09  profilanswer
 

Bon alors voilà, je pense qu'il n'y a pas une grande majorité de personnes qui font du scheme ici, mais on ne sait jamais.
 
Je ne comprend pas grand chose a cette macro :
 

Code :
  1. (define-syntax amb
  2. (syntax-rules ()
  3. ((amb e ...)
  4. (let ((+prev-amb-fail amb-fail))
  5. (call/cc
  6. (lambda (+sk)
  7. (call/cc
  8. (lambda (+fk)
  9. (set! amb-fail
  10. (lambda ()
  11. (set! amb-fail +prev-amb-fail)
  12. (+fk 'fail)))
  13. (+sk e)))
  14. ...
  15. (+prev-amb-fail)))))))


 
Je sais qu'elle permet de faire du backtracking sur n'importe quoi en utilisant les continuations mais ca reste quand même tres vague ...
 
Plz help   :hello:

mood
Publicité
Posté le 08-12-2004 à 16:27:09  profilanswer
 

n°1862576
jeeve
Posté le 17-03-2009 à 16:33:40  profilanswer
 

voici un petit exemple en DrScheme pour illustrer le fonctionnement :
 

Code :
  1. ;; Inspired by:
  2. ;;  http://web.engr.oregonstate.edu/~e [...] _JFP04.pdf
  3. ;;  http://web.engr.oregonstate.edu/~erwig/zurg/
  4. ;;
  5. ;; amb stuff
  6. ;;  http://mitpress.mit.edu/sicp/full- [...] ode88.html
  7. ;;  http://docs.mandragor.org/files/Pr [...] sch016.htm
  8. ;;
  9. (require (planet "amb.scm" ("wmfarr" "amb.plt" 1 0)))
  10. (amb-collect
  11.   (let ((x (amb 1 2 3 4 5 12))
  12.         (y (amb 6 7 8 9 10 3)))
  13.     (if (not (= (+ x y) 15))
  14.         (amb)
  15.         (cons x y))))


 
qui fourni : ((5 . 10) (12 . 3))
 

Chronoklazm a écrit :

Bon alors voilà, je pense qu'il n'y a pas une grande majorité de personnes qui font du scheme ici, mais on ne sait jamais.
 
Je ne comprend pas grand chose a cette macro :
 

Code :
  1. (define-syntax amb
  2. (syntax-rules ()
  3. ((amb e ...)
  4. (let ((+prev-amb-fail amb-fail))
  5. (call/cc
  6. (lambda (+sk)
  7. (call/cc
  8. (lambda (+fk)
  9. (set! amb-fail
  10. (lambda ()
  11. (set! amb-fail +prev-amb-fail)
  12. (+fk 'fail)))
  13. (+sk e)))
  14. ...
  15. (+prev-amb-fail)))))))


 
Je sais qu'elle permet de faire du backtracking sur n'importe quoi en utilisant les continuations mais ca reste quand même tres vague ...
 
Plz help   :hello:



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Une explication sur amb ?

 

Sujets relatifs
char *a=(char *)(0xAdresse) explicationExplication HTML
call : documentation / explication ?Petite explication pour un débutant...
Explication d'une notation AMC DesignerGtkmm Demande d'explication / Lien pour un cours de C++
explication de bloc "static" en javaexplication
Explication de code[C++] effective C++ (regle 34) (need explication)
Plus de sujets relatifs à : Une explication sur amb ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)