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 :
- (define-syntax amb
- (syntax-rules ()
- ((amb e ...)
- (let ((+prev-amb-fail amb-fail))
- (call/cc
- (lambda (+sk)
- (call/cc
- (lambda (+fk)
- (set! amb-fail
- (lambda ()
- (set! amb-fail +prev-amb-fail)
- (+fk 'fail)))
- (+sk e)))
- ...
- (+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