Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (require (for-syntax racket/base racket/list))
- (define-syntax (queens stx)
- (syntax-case stx ()
- [(_ n)
- (with-syntax ([board (datum->syntax
- stx
- (cons 'list
- (for/list ([_ (syntax->datum #'n)])
- `(amb ,@(range 1 (add1 (syntax->datum #'n)))))))])
- #`(amb-collect
- (let ([b board])
- (amb-assert (distinct? b))
- (amb-assert (safe? b))
- b)))]))
- (queens 1)
- (queens 4)
- (queens 6)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement