Задачи из HTDP я решаю на языке “ракет”. Это такой вариант лиспа, изначально созданный в образовательных целях, и со временем разросшийся в полноценный язык. Изучая ракет, наткнулся на прикольный язык для работы с L-системами, реализованный на нем.

Сразу вспомнил одну задачку с хекслета, в которой нужно написать функцию преобразования цепочки ДНК в РНК. Цепочка состоит из последовательности букв A, C, G, T. Преобразование заключается в замене букв:

G -> C 
C -> G
T -> A
A -> U

В итоге строка CCGTA должна превращаться в GGCAU. Как видим, ничего сложного, но задача достаточно нетривиальна чтобы задавать ее начинающим.

На скриншоте снизу мое решение на джаваскрипте и ракете. Красота использования подходящего языка в том, что решение выглядит практически как условие.

Документация языка
Про L-системы на википедии