Как удалить окружающие скобки во вложенном списке в Scheme, если этот вложенный список имеет 1 элемент?

Допустим, у меня есть список: (a b ((c)) (d + e) ((e + f)) (g) () h)

Как мне получить следующий список (желательно с помощью функции):(a b c (d + e) (e + f) g h)

Другими словами:

  • Если вложенный список имеет только один элемент, то он упрощается до элемента. То есть ((c)) упрощается до просто c в приведенном выше примере. Также ((e + f)) становится (e + f).

  • Если вложенный список имеет более одного элемента, то он остается неизменным. То есть (d + e) остается как (d + e) в примере выше.

  • Если вложенный список является нулевым, он просто удаляется.

Наконец Я не уверен, что термин flatten применим в данном случае. Надеюсь, мой вопрос понятен. Если нет, пожалуйста, дайте мне знать.

Заранее спасибо!

6
задан hal88 15 October 2011 в 18:23
поделиться