Play with a bottom up recognizer
Play with the bottom-up recognizer defined in here. Make sure you thoroughly understand how it works. In particular, make sure you understand- the way append/3 is used to divide the input list into three sublists;
- why it is so slow!
You can find an explanention of how the recognizer works here, and the answer to why it's so slow here