Задачи из HTDP я решаю на языке “ракет”. Это такой вариант лиспа, изначально созданный в образовательных целях, и со временем разросшийся в полноценный язык. Изучая ракет, наткнулся на прикольный язык для работы с L-системами, реализованный на нем.
Сразу вспомнил одну задачку с хекслета, в которой нужно написать функцию преобразования цепочки ДНК в РНК. Цепочка состоит из последовательности букв A, C, G, T. Преобразование заключается в замене букв:
G -> C
C -> G
T -> A
A -> U
В итоге строка CCGTA должна превращаться в GGCAU. Как видим, ничего сложного, но задача достаточно нетривиальна чтобы задавать ее начинающим.
На скриншоте снизу мое решение на джаваскрипте и ракете. Красота использования подходящего языка в том, что решение выглядит практически как условие.