Knitting patterns make an acceptable Logo, with basic operational commands (KnitML: usingNeedle), subroutines (instruction), and control structures (repeat/until).
Suffice it to say that s-expressions aren't an acceptable lisp. Thanks for keyword doping the subject, tho.
Not really knowing knitting patterns, it took me a little while to figure out the example. Here's what I come up with through some wikipedia-ing and staring at it for awhile:
1) p = purl stitch and is represented by the horizontal line
2) k = knit stitch and is represented by the vertical line
3) the numbers are the number of stitches of that kind
4) the line start in the lower-right and work to the left and up
Anyone who knows better, please correct me if I'm wrong.
(wow, i never thought my obsession with knitting would come in handy here)
Basically, that's it. My only problem with the pattern is that it's not entirely specific about what to repeat, typically patterns will go "(p2, k2, p1, k1) repeat to end", using parentheses or asterisks to clarify what to repeat, but that's a nitpick at most.
The way one typically knits on straight needles, you knit from the left needle to the right. When you are done with one row, reverse the right needle so it becomes the left, then knit the next row, repeat. What you see is the graphic when you are done knitting. What the pattern should be doing is zigzagging left-to-right then right-to-left in reverse, i.e. the purl and knit stitches look the opposite from each other: to create something that looks all knitted from the front (and all purled from the back), you knit one row and purl the next row.
edit: Also, the graphic could go the other way, but there is usually a front and back to a knitted piece. There's also knitting in reverse and knitting in the round and more, but generally the pattern will account for that.
Suffice it to say that s-expressions aren't an acceptable lisp. Thanks for keyword doping the subject, tho.