Да в общем-то генерить я его хотел потому-что у меня на входе будет несколько т.н. стейтов. Подобных тому что я описал.
Идея была в том, что из них сделать обычные функции с case/cond внутри.
Удобным это казалось потому-что стейты один другой сменяют, казалось что это могут быть просто вызовы функций.
Скажем было:
"scanright": [
{ "read" : ".", "to_state": "scanright", "write": ".", "action": "RIGHT"},
{ "read" : "1", "to_state": "scanright", "write": "1", "action": "RIGHT"},
],
"eraseone": [
{ "read" : "1", "to_state": "subone", "write": "=", "action": "LEFT"},
{ "read" : "-", "to_state": "HALT" , "write": ".", "action": "LEFT"}
],
A стало
(scanright [something]
(case symbol
. (dosomething)
1 (eraseone)))
(eraseone [something]
(case symbol
1 (dosomething)
- (scanright)))