Skip to content

echo.watch #143

@pearmini

Description

@pearmini

https://www.youtube.com/watch?v=PUv66718DII

Image
binarySearch('g', ["a", "b", "c", "d"]); // -> lo = 0 | 3 | 5 // -> h = 5 | 5 | 5 // -> m = 2 | 4 | 5 // -> value = 'c' | 'e' | 'f' binarySearch('g', ["a", "b", "c", "d"], echo); function binarySearch(key, array, echo=recho.identity) { let lo = echo.watch(0); let hi = echo.watch(array.length - 1); while (lo <= hi) { const mi = echo.watch(Math.floor((lo + hi) / 2)); const value = echo.watch(array[mi]); if (value < key) lo = mi + 1; else if (value > key) hi = mi - 1; else return mi; } return -1; }

Transpile to:

function binarySearch(key, array, echo=recho.identity) { let lo = echo.watch(0, 'lo'); let hi = echo.watch(array.length - 1, 'hi'); while (lo <= hi) { const mi = echo.watch(Math.floor((lo.val + hi.val) / 2), 'mi'); const value = echo.watch(array[mi], 'value'); if (value < key) lo.val = mi.val + 1; else if (value > key) hi.val = mi.val - 1; else return mi; } return -1; }

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions