Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Here's my first pass at the
sort!implementation for issue #9Feel free to improve the lisp code, because I'm not very good at writing lisp yet.
This is the algorithm I used: https://en.wikipedia.org/wiki/Quicksort#Lomuto_partition_scheme
You might be able to make it faster using the Hoare partition scheme. The problem I ran into was that we don't have a
>operator. We only have the operator the user gives us, which could be<, in which case we only have<and>=. The workaround I used for the Lomuto partition scheme was to compare the pivot value based on index for equality to get<=to work. I thought I could use the inverse of that to get>, but it didn't work for some reason.Also, I think
lisp_subvectorhad a bug where it would start at 0 no matter what you put for the start. Maybe my assumptions are wrong though.