LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

Тоже будет работать, но нет.

Можно и такой:

(define-syntax (loop stx)
  (syntax-case stx ()
    ((loop for var from n1 to n2 when cond collect res)
     (with-syntax ((it (datum->syntax stx 'it)))
       (syntax
        (for*/list ([var (in-range n1 n2)]
                    [it (in-value var)]
                    #:when cond)
          res))))))

Исходная версия monk, :

Тоже будет работать, но нет.

Можно и такой:

(define-syntax (loop stx)
  (syntax-case stx ()
    ((loop for var from n1 to n2 when cond collect res)
     (with-syntax ((it (datum->syntax stx 'it)))
       (syntax
        (for/list ([var (in-range n1 n2)]                   
                   #:when cond
                   [it (in-value var)])
          res))))))