[gambit-list] "Number of arguments exceeds implementation limit" error
Bill Richter
richter at math.northwestern.edu
Sun Sep 3 13:13:14 EDT 2006
Marc, I got the error message above. I assume I could fix this by
recompiling gambit, but beta 17 failed make check (never heard from
anyone on that bug report), and I no longer have the sources for beta
15, which is what I'm using. But maybe you can give me a Scheme tip
to fix this problem of mine without recompiling. So
I've written a Sudoku solver that's 1500 lines long, and it
bombed on a puzzle after calculating for many hours, and here was my
error message:
Check for Solved Cells*** ERROR IN #<procedure #2>, "OrChain.scm"@327.23 -- Number of arguments exceeds implementation limit
(append
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5)) (4 4) (...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5)) (4 4) (...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5)) (4 4) (...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5)) (4 4) (...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5)) (4 4) (...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5)) (4 4) (...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5)) (4 4) (...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5)) (4 4) (...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((2 4)) (4 4) (...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5) (9 5)) (...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5) (8 5) (9...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((2 4)) (4 4) (...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5) (8 5) (9...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5)) (4 4) (...
'(((((1 1)) (3 3) ((1 3)) (1 1) ((1 5) (1 6))) (1 4 (3 5)) (((7 5)) (4 4) (...
...)
line 327 is here:
(apply append
(filter-map (lambda (or-chain)
(let* ([xUyV (OrStatement or-chain)]
[x (first xUyV)] [U (second xUyV)]
[y (third xUyV)] [V (fourth xUyV)]
[mult-block (first or-chain)])
(and
(not (number? (first mult-block)))
(= (length U) 1)
(filter-map (lambda (conj/ALS)
(let* ([aPbQ (OrStatement (list conj/ALS))]
[a (first aPbQ)] [P (second aPbQ)]
[b (third aPbQ)] [Q (fourth aPbQ)])
(and (not (= b x))
(set-equal? Q U)
(cons
(cons P (cons (list a b) mult-block))
(rest or-chain)))))
ConjLoopers))))
or-chains))
my `filter-map' is a combination of map with the HtDP function
`filter'. So for some of the elements of the list `or-chains', I
produce a list, and then I append the whole collection of lists. So I
think what's happening here is that the list `or-chains' is too long.
BTW I've been posting a lot of Mike Mepham's Sudoku newsgroup
http://www.sudoku.org.uk/cgi-bin/discus/discus.cgi?pg=topics Mostly
I've been trying to teach these Sudoku hotshots the meaning of words
like logic & axiom. I'm not having much more success than I had a few
years ago on comp.lang.scheme trying to teach the CS profs how one
constructs mathematical function between two sets.
More information about the Gambit-list
mailing list