次のコードはDrRacket環境では完全に機能しますが、WeSchemeでは次のエラーが発生します。
Inside a cond branch, I expect to see a question and an answer, but I see more than two things here.
at: line 15, column 4, in <definitions>
これを修正するにはどうすればよいですか?実際のコードはhttp://www.wescheme.org/view?publicId=gutsy-buddy-woken-smoke-wrestで入手できます。
(define (insert l n e)
(if (= 0 n)
(cons e l)
(cons (car l)
(insert (cdr l) (- n 1) e))))
(define (seq start end)
(if (= start end)
(list end)
(cons start (seq (+ start 1) end))))
(define (permute l)
(cond
[(null? l) '(())]
[else (define (silly1 p)
(define (silly2 n) (insert p n (car l)))
(map silly2 (seq 0 (length p))))
(apply append (map silly1 (permute (cdr l))))]))