Я пытаюсь заключить контракт для данных, которые выглядят следующим образом:
'(a (b c) (d e) ...) ; a, b, c, d, e are all symbols
, который в основном представляет собой список, состоящий из символа, за которым следует произвольное количество списков из двух символов.
Есть list/c
, но это позволяет мне делать это только с фиксированным количеством элементов. Существует также *list/c
, который принимает произвольные начальные значения, за которыми следуют окончательные фиксированные значения, что является своего рода противоположностью тому, что мне нужно.
Как мне сделать правильный контракт для моей структуры данных?