Исправление silver-bullet-bfg, (текущая версия) :
Возникла такая проблема. Разбираю код, как работает:
(require
(for-syntax
"./core/src/application-server/src/calculated.rkt"))
(define-for-syntax (data colname)
(let*
([config (database-config)]
[collections (hash-ref config 'collections)]
[string-key (syntax->datum colname)]
[config (hash-ref collections (string->symbol string-key))]
[fields (hash-ref config 'fields)])
(cons string-key fields)))
(define-for-syntax (parse/build-cdr fields)
(for/list
([(field-name config) (in-hash fields)])
(cons field-name config)))
(define-for-syntax (parse data)
(list (car data)
(for/list ([(field-name args) (in-hash (cdr data))])
(cons field-name (append 0)))))
(define-syntax (define/mongo-struct stx)
(syntax-case stx ()
[(_ VAR COLNAME)
(with-syntax
([(NAME FIELDS)
(datum->syntax stx (parse (data #'COLNAME)))])
#'(define VAR FIELDS))]))
(define/mongo-struct t "points")
(displayln t)
Получаю ошибки:
/usr/local/share/racket/collects/racket/private/kw.rkt:1182:25: #%app: bad syntax
in: (#%app y . 0)
...
Как такое можно полечить? З.Ы.: спасибо за подсказки огромное. Сейчас как раз разбираюсь и стараюсь модифицировать
Исходная версия silver-bullet-bfg, :
Возникла такая проблема. Разбираю код, как работает:
(require
(for-syntax
"./core/src/application-server/src/calculated.rkt"))
(define-for-syntax (data colname)
(let*
([config (database-config)]
[collections (hash-ref config 'collections)]
[string-key (syntax->datum colname)]
[config (hash-ref collections (string->symbol string-key))]
[fields (hash-ref config 'fields)])
(cons string-key fields)))
(define-for-syntax (parse/build-cdr fields)
(for/list
([(field-name config) (in-hash fields)])
(cons field-name config)))
(define-for-syntax (parse data)
(list (car data)
(for/list ([(field-name args) (in-hash (cdr data))])
(cons field-name (append 0)))))
(define-syntax (define/mongo-struct stx)
(syntax-case stx ()
[(_ VAR COLNAME)
(with-syntax
([(NAME FIELDS)
(datum->syntax stx (parse (data #'COLNAME)))])
#'(define VAR FIELDS))]))
(define/mongo-struct t "points")
(displayln t)
Получаю ошибки:
/usr/local/share/racket/collects/racket/private/kw.rkt:1182:25: #%app: bad syntax
in: (#%app y . 0)
...
Как такое можно полечить?