Welcome to the CHICKEN Scheme pasting service

code snippet to showcase some weird behaviour with let added by Reid 18 hours ago

          ;; Change the cursor's mode
          (letrec ((changed-mode? #t))
            (cond ((pressed? 'brush-mode) (set! (cursor-mode self) (enum-name->enum cursor-modes 'brush)))
                  ((pressed? 'select-mode) (set! (cursor-mode self) (enum-name->enum cursor-modes 'select)))
                  ((pressed? 'cycle-mode) (set! (cursor-mode self) (enum-name->enum cursor-modes 'cycle)))
                  ((pressed? 'next-mode) (set! (cursor-mode self) (or (enum-next (cursor-mode self))
                                                                      (enum-min cursor-modes))))
                  ((pressed? 'prev-mode) (set! (cursor-mode self) (or (enum-prev (cursor-mode self))
                                                                      (enum-max cursor-modes))))
                  (else (set! changed-mode? #f)))

            ;; init code for modes that require it
            (when changed-mode?
              (case (enum-name (cursor-mode self))
                ((select) (set! (cursor-ax self) (cursor-x self))
                          (set! (cursor-ay self) (cursor-y self))))))

Your annotation:

Enter a new annotation:

Your nick:
The title of your paste:
Your paste (mandatory) :
Which module provides `foreign-declare'?
Visually impaired? Let me spell it for you (wav file) download WAV