Skip to content

Instantly share code, notes, and snippets.

@tcrayford
Created April 6, 2010 22:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tcrayford/358191 to your computer and use it in GitHub Desktop.
Save tcrayford/358191 to your computer and use it in GitHub Desktop.
<xml>
<defun name="qsort">
<args>
<required-arg name="lis" />
<optional-args>
<optional-arg name="less" default="nil"/>
<optional-arg name="greater" default="nil"/>
</optional-args>
</args>
<cond>
<cond-clause>
<cond-check>
<null-check>
<lis />
</null-check>
</cond-check>
<cond-expr>
<nil />
</cond-expr>
</cond-clause>
<cond-clause>
<cond-check>
<null-check>
<cdr>
<lis />
</cdr>
</null-check>
</cond-check>
<cond-expr>
<append>
<qsort>
<less/>
</qsort>
<cons>
<car>
<lis />
</car>
<qsort>
<greater/>
</qsort>
</cons>
</append>
</cond-expr>
</cond-clause>
<cond-clause>
<check>
<true />
</check>
</cond-clause>
<cond-expr>
<let>
<let-binding>
<symbol name="pivot">
<car>
<lis/>
</car>
</symbol>
<symbol name="x">
<cadr>
<lis/>
</cadr>
</symbol>
</let-binding>
<let-body>
<if>
<if-check>
<greater-than-or-equal-to>
<x/>
<pivot/>
</greater-than-or-equal-to>
</if-check>
<if-body>
<then-clause>
<qsort>
<cons>
<pivot/>
<cddr>
<lis/>
</cddr>
</cons>
<cons>
<x/>
<less/>
</cons>
<greater/>
</qsort>
</then-clause>
<else-clause>
<qsort>
<cons>
<pivot/>
<cddr>
<lis/>
</cddr>
</cons>
<less/>
<cons>
<x/>
<greater/>
</cons>
</qsort>
</else-clause>
</if-body>
</if>
</let-body>
</let>
</cond-expr>
</cond>
</defun>
</xml>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment