Use level-wise algorithm for BF unfolds#198
Open
treeowl wants to merge 1 commit intohaskell:masterfrom
Open
Conversation
Contributor
Author
|
This addresses #124 |
de68844 to
72bfa89
Compare
Contributor
Author
|
@wrengr, I could use a sanity check on this. Also, we really need to come up with QuickCheck properties for this module; currently, we basically have no specification to implement. |
b043446 to
674a610
Compare
`unfoldTreeM_BF` and `unfoldForestM_BF` previously used a queue-based algorithm from a note by Okasaki. That same note indicates that the level-wise approach tends to be slightly faster, and my own informal tests suggest the same. Both solutions suffer from a potential space leak, retaining the seed lists longer than necessary in order to later use their lengths. It remains to be seen whether this leak can be plugged without a speed penalty.
674a610 to
e12fda7
Compare
Member
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
unfoldTreeM_BFandunfoldForestM_BFpreviously used aqueue-based algorithm from a note by Okasaki. That same
note indicates that the level-wise approach tends to be slightly
faster, and my own informal tests suggest the same. Both solutions
suffer from a potential space leak, retaining the seed lists
longer than necessary in order to later use their lengths. It
remains to be seen whether this leak can be plugged without
a speed penalty.