Advertisement
Guest User

Untitled

a guest
Aug 5th, 2015
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1. (require (for-syntax racket/base racket/list))
  2.  
  3. (define-syntax (queens stx)
  4. (syntax-case stx ()
  5. [(_ n)
  6. (with-syntax ([board (datum->syntax
  7. stx
  8. (cons 'list
  9. (for/list ([_ (syntax->datum #'n)])
  10. `(amb ,@(range 1 (add1 (syntax->datum #'n)))))))])
  11. #`(amb-collect
  12. (let ([b board])
  13. (amb-assert (distinct? b))
  14. (amb-assert (safe? b))
  15. b)))]))
  16.  
  17. (queens 1)
  18. (queens 4)
  19. (queens 6)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement