https://docs.racket-lang.org/sql/ - хороший DSL для подготовки операторов SQL, который работает с библиотекой db
.
В документах показан пример вроде:
(require sql)
(create-table #:temporary the_numbers
#:columns [n integer #:not-null] [d varchar])
В этом коде the_numbers
не является идентификатором, он трактуется буквально как имя таблицы.
Я хочу сделать что-то вроде:
(require sql)
(define (my-create-table table-name)
(create-table #:temporary table-name
#:columns [n integer #:not-null] [d varchar]))
Это выдает ошибку, потому что он рассматривает table-name
как фактическое имя таблицы, и ему не нравится дефис в нем (я думаю, что можно использовать это как имя таблицы, но я думаю, мне нужно сделать что-то еще, чтобы lib процитируйте это правильно ...)
Я новичок в Racket и не знаю многих трюков. Я пробовал использовать 'table-name
, но это не сработало.