Предположим, что у нас есть список, как: [[[[a],b,c],a,b,[a,b]]]
рекурсии несколько списков списков
Я хочу рекурсивный список вниз получить [[a],b,c]
или [a]
, например.
Выполнение примерно так: listsplit([H|T], H, T).
При возвращении головы я добираюсь до одного уровня списка. Я пробовал рекурсивно делать это, но безрезультатно.
Любая помощь приветствуется.
Я нахожусь в середине написания небольшого интерпретатора, где я создаю таблицу символов в прологе. Структура моего ввода - это что-то вроде этого [[function1], [[function2], [[function3]]] 'и я пытаюсь деконструировать его, чтобы сохранить параметры внутри функций (возвращаемое значение, входные параметры , функция корпус и т.п.). Пример функции: '[[int, [add]], [(], [[int, [a]], [[,], [[int, [b]], []]]]], []], [=], [[[a], []], [[+], [[b], []]]]] ' – ari
Эта вещь совсем не похожа на таблицу символов. Символьная таблица по существу похожа на большой хеш, который сопоставляет идентификаторы с соответствующими семантическими конструкциями в текущей области. То, что вы получили здесь, имеет в себе всевозможные лексические барахлы, такие как запятые и круглые скобки. Это не менее двух уровней перед семантическим анализом. Попытка сделать лексинг/синтаксический анализ/семантический анализ сразу с использованием вложенных списков, поскольку единственная структура данных будет не очень забавной. Я предлагаю вам более четко отделить эти шаги и сначала разработать соответствующие структуры данных. –